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を使用することを考慮します.