• ベストアンサー

unicodeファイルの読み込み

javaアプレット上で BufferedReader file = new BufferedReader(new FileReader("C:/test/list.txt")); で外部テキストファイルを読み込んでいるのですが、この外部テキストファイルの文字コードをANSIからUnicodeに変えるとプログラムが動かなくなります。日本語やアルファベットではない文字の保存のためにテキストをUnicodeにて保存しなければならないのですが、どうすればUnicodeのテキストファイルを読み込むことができますか。

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

  • ベストアンサー
回答No.1

>Convenience class for reading character files. The constructors of this class assume that the default character encoding and the default byte-buffer size are appropriate. To specify these values yourself, construct an InputStreamReader on a FileInputStream. とある通り、FileReaderクラスを使う限り出来ず、代わりに BufferedReader file = new BufferedReader(new InputStreamReader(new FileInputStream("C:/test/list.txt"),"UTF-8")); というような感じで行う。

RaiDeen
質問者

お礼

ありがとうございます!

その他の回答 (1)

  • OKbokuzyo
  • ベストアンサー率43% (130/296)
回答No.2

FileReaderクラスを用いるとシステムデフォルト(WindowsならばWindows-31J)の 文字コードが使用されます。 http://java.sun.com/javase/ja/6/docs/ja/api/java/io/FileReader.html javadocにもある通り、文字コードを指定したい場合は FileInputStreamをInputStreamReaderでラップする必要があります。 BufferedReaderはReaderクラスをラップするので 当然InputStreamReaderもラップできるため 操作上の問題は何も無いはずです。 FileInputStream fis = new FileInputStream("C:/test/list.txt"); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader br = new BufferedReader(isr);

RaiDeen
質問者

お礼

ありがとうございます!