あるプログラマの日記

プログラマのメモ、出来事、考えたこと、勉強とかの雑記

プラットフォームに依存せずに、特定エンコーディングのファイルをリードする。

InputStreamReader はバイトストリームから文字ストリームへ橋渡しを行います。
バイトデータを読み込んで、指定されたエンコーディングで文字に変換します。
下記は、EUC_JPのエンコーディングファイルを読み込んでいます。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

  ...
  ...

  File file = new File( path );
  FileInputStream fis = null;
  InputStreamReader isr = null;
  BufferedReader br = null;
  try{
    fis = new FileInputStream( file );
    isr = new InputStreamReader( fis, "EUC_JP" );
    br = new BufferedReader( isr );
    String line = null;
    while ( ( line = br.readLine() ) != null ) {
      ...
      ...
    }
  }catch( UnsupportedEncodingException e ){
      ...
    e.printStackTrace();
  }catch( IOException e ){
      ...
    e.printStackTrace();
  }finally{
  	try{
      if( br != null )  br.close();
      else if( isr != null )  isr.close();
      else if( fis != null )  fis.close();
    }catch( IOException ex ){}
  }
  ...
  ...