最新閲覧日:

以下のように、Double,Longをファイルに書き込もうとした場合、どのようにキャストをすればよろしいのでしょうか?
(String)でString型への変換や
Integer.parseInt等を試したのですが、できませんでした。よろしくお願いします。

import java.io.*;

class test
{
public static void main(String[] args)
{
double dNumber = 3.45;
long lNumber = 12345;

BufferedWriter bw = new BufferedWriter(new FileWriter("test.txt"));
bw.write(dNumber);
bw.write(lNumber);

} //end main
} //end class

A 回答 (3件)

書きこむだけであれば、DoubleクラスやLongクラスのtoStringメソッドで、文字列の変換して書きこむってことも出来ますが、これでは桁数が解らなくなるのでセパレータを入れる等の細工が必要ですね。



あとは、RandomAccessFileクラスを使う方法もあります。
このクラスはwriteDoubleや、writeLongといった書き込みメソッドがあります。また、readDoubleや、readLongと言った読み出しメソッドもあります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ご紹介いただいたRandomAccessFileクラスは多分今まで使ったことがないと思うので、APIで少し見てみたいと思います。

お礼日時:2001/07/26 11:05

予約されてるらしいので、もう一度お邪魔します :-)



ぱっと思い付くのは二つ。ネイティブな型を使うのであれば、こんな感じで。

double dNumber = 3.45;
bw.write("" + dNumber);

クラスを使うんであれば、toString() メソッドを使う。

Double dNumber = new Double(3.45);
bw.write(dNumber.toString());

  *  *  *

ファイル名が .txt だから、テキストでの出力で良いのだと思うけど、
蛇足を少々。

・このままのソースだと、数字がくっついちゃう
・BufferedWriter の close() をするように
    • good
    • 0
この回答へのお礼

二回連続で回答していただきありがとうございます。
おかげさまで今回のプログラムは無事にコンパイルでき、ロジックエラーが少々あったものの、それを修正して無事に動くようになりました。
今回はありがとうございました。

お礼日時:2001/07/26 11:02

各クラスのtoString()を使えばOKですよ。



Double dNumber1 = new Double( 3.45 );
Long lNumber1 = new Long( 12345 );

System.out.println( dNumber1.toString() );
System.out.println( lNumber1.toString() );

double dNumber2 = 3.45;
long lNumber2 = 12345;

System.out.println( Double.toString( dNumber2 ) );
System.out.println( Long.toString( lNumber2 ) );

前者は、最初からオブジェクトとして書いた場合、後者は、原始型を使用していますが、DoubleクラスのクラスメソッドtoString()を使って変換しています。
    • good
    • 0
この回答へのお礼

おかげさまで解決いたしました。回答ありがとうございました。

お礼日時:2001/07/26 10:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ