プロが教える店舗&オフィスのセキュリティ対策術

javaのソースを作成していて、

BufferedWriter bw = new BufferedWriter(new FileWriter(args[1]));
のようにし、ファイル出力ストリームを取得しarg[1](テキストファイル)に
bw.write(num);
のようにしてint型の変数をファイルに書き込むようにしましたが、
できあがったテキストファイルを開いてみると文字化けしていました。
これを文字化けさせずにファイルに書き込む方法はありますでしょうか?
よろしくお願いします。

A 回答 (1件)

文字化けしているわけではありません。

write(int)の動作があなたが考えているものと違う動作をしているだけです。

たぶん数字の1を書きたいときに
int num=1;
として
bw.write(num);
をやっていませんか??これでは数字の'1'を書き込むことはできないのです。正解は
int num='1';
とします。System.out.println(num);するとわかりますが、数値にするとnum=49です。

write(String)を使う方がわかりやすいと思うので、
bw.write(Integer.toString(num));
と書くことをお勧めします。

ちなみに、ArrayListをString配列に変換するには
ArrayList al;
String str2[]=new String[al.size()];
for(int i=0;i<al.size();i++)
{
str2[i]=al.get(i).toString();
}
とします。Javaでの常套手段なので覚えていて損はないと思います。
    • good
    • 0
この回答へのお礼

前回の質問に引き続きご回答ありがとうございます!
C言語のように単にint型の変数を入れても無理なんですね^^;
おかげさまでファイルにうまく書き込むことができました!!

なるほど!!ArrayListをString配列の格納する方法も教えて
くださりありがとうございました★

お礼日時:2006/11/20 12:30

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