• ベストアンサー

javaプログラミングでの文字化けの対処方法

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

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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での常套手段なので覚えていて損はないと思います。

kanari501
質問者

お礼

前回の質問に引き続きご回答ありがとうございます! C言語のように単にint型の変数を入れても無理なんですね^^; おかげさまでファイルにうまく書き込むことができました!! なるほど!!ArrayListをString配列の格納する方法も教えて くださりありがとうございました★