UTF-8でエンコードされたテキストを読む
3026 ワード
FileReader FileWriterとInputStreamReader OutputStreamWriter UTF-8でエンコードされたテキストを読みます
FileReaderとFileWriterはそれぞれInputStreamReaderとOutputStreamWriterの直接サブクラスであり、InputStreamReaderとOutputStreamWriterは文字流通とバイトストリームの橋渡しであり、バイトストリームと文字ストリームの臨界で発生する指定文字符号化を表示することができる.
FileReaderとFileWriterは文字ファイルを処理する便利なクラスで、デフォルトの文字符号化を使用しています.
UTF-8文字コードのファイルを読みます
1、FileReaderクラスの使用
public static String readUsingFileReader(String fileName,
String encoding) throws IOException{
StringBuffer sb = new StringBuffer();
BufferedReader in = new BufferedReader(
new FileReader(fileName));
String s ;
while ((s=in.readLine())!= null ){
s = new String((s+ "
" ).getBytes(),encoding);
sb.append(s);
}
in.close();
return sb.toString();
}
2、InputStreamReaderクラスの使用
public static String readUsingInputStreamReader(String fileName,String encoding)
throws IOException{
StringBuffer sb = new StringBuffer();
BufferedReader in = new BufferedReader(
new InputStreamReader( new FileInputStream(fileName),encoding));
String s ;
while ((s=in.readLine())!= null ){
sb.append(s);
sb.append( "
" );
}
in.close();
return sb.toString();
}
FileReaderクラスを使用するにはnew String((s+")を通過する必要があります.getBytes()、encoding)はトランスコードを行いますが、いくつかの漢字が解析できないことがあります.InputStreamReaderクラスを使用する場合は、符号化方法を指定して解析することができます.
書類を書くことと読むことの差は多くない.
1、FileWriterクラスの使用
public static void writeUsingFileWriter(String fileName,String text,
String encoding) throws IOException{
PrintWriter out = new PrintWriter(
new FileWriter(fileName));
text = new String(text.getBytes(encoding));
out.print(text);
out.close();
}
2、OutputStreamWriterクラスの使用
public static void writeUsingOutputStreamWriter(String
fileName,String text,String encoding) throws IOException{
PrintWriter out = new PrintWriter(
new OutputStreamWriter(
new FileOutputStream(fileName),encoding));
out.print(text);
out.close();
}
FileOutputStream/FilleInputStreamは、画像データなどの元のバイトのストリームを書き込むために使用されます.文字ストリームを書き込むには、FileWriter/FileReaderを使用することを考慮します.