読者です 読者をやめる 読者になる 読者になる

ファイル読込 - InputStreamReader

先日のwriteFIleに続き、ファイル読込処理を書いてみた。

/**
 * ファイル読込.
 * ファイルの内容を文字列で読み込む.
 * @param filePath 読込対象ファイルパス
 * @param charset 文字コード
 * @return String
 * @throws IOException
 */
public static String readFile(String filePath,  EncodeCharset charset) throws IOException{
    InputStreamReader reader = null;
    try{
        reader = new InputStreamReader(new FileInputStream(filePath), charset.getValue());
        StringBuffer sb = new StringBuffer();
        int i;
        while((i = reader.read()) != -1){
            sb.append((char)i);
        }
        return sb.toString();
    }catch (IOException e) {
        LogUtil.error("ファイル読込に失敗", e);
        throw e;
    }finally{
        try{
            if(reader != null){
                reader.close();
            }
        }catch (IOException e) {
            LogUtil.error("closeに失敗", e);
            throw e;
        }
    }
}


とりあえず明日のために眠るのでコメントは後日追記するかもしれない。
なお、JavaDocにもあるようにBufferedReaderを使ったほうがはやいらしいが、readlineは改行コードを無視してしまうのでダメ。
もう1つ読込メソッドをBufferedReaderで作ってみて、それと速度計測でもしてみよう。