役に立つかどうか分らないけど、ファイル読み/書きのユーティリティクラス第一弾!
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import org.apache.log4j.Logger;
/**
* BufferedReader/BufferedWriterのユーティリティクラス
*/
public class BufferedUtil {
/** logger */
private static final Logger logger = Logger.getLogger(BufferedUtil.class);
/** DEFAULT_CHAR_SET */
private static final String DEFAULT_CHAR_SET = "UTF-8";
/**
*BufferedReader
の取得
*
* @param fileName
* ファイル名称
*
* @returnBufferedReader
*
* @throws FileNotFoundException
*fileName
が存在しない
*/
public BufferedReader getBufferedReader(String fileName)
throws FileNotFoundException {
try {
return getBufferedReader(fileName, DEFAULT_CHAR_SET);
} catch (UnsupportedEncodingException e) {
// デフォルト文字コード指定では本例外は発生しないため、
// 呼び出し元には非チェック例外とします
logger.error(e.getMessage(), e);
throw new RuntimeException(e);
}
}
/**
*BufferedReader
の取得
*
* @param fileName
* ファイル名称
* @param charSet
* 文字コード
*
* @returnBufferedReader
*
* @throws FileNotFoundException
*fileName
が存在しない
* @throws UnsupportedEncodingException
* 指定したcharSet
が不正
*/
public BufferedReader getBufferedReader(String fileName, String charSet)
throws FileNotFoundException, UnsupportedEncodingException {
FileInputStream fis = new FileInputStream(fileName);
return new BufferedReader(new InputStreamReader(fis, charSet));
}
/**
* @param bufferedReader
* BufferedReader
*
* @returnbufferedReader
の全行のデータ
*
* @throws IOException
* ファイル読み込み中に例外発生
*/
public ArrayListreadLineAll(BufferedReader bufferedReader)
throws IOException {
ArrayListlineList = new ArrayList ();
String line = null;
while ((line = bufferedReader.readLine()) != null) {
lineList.add(line);
}
return lineList;
}
/**
*BufferedWriter
の取得
*
* @param fileName
* ファイル名称
*
* @returnBufferedWriter
*
* @throws FileNotFoundException
*fileName
が存在しない
*/
public BufferedWriter getBufferedWriter(String fileName)
throws FileNotFoundException {
try {
return getBufferedWriter(fileName, DEFAULT_CHAR_SET);
} catch (UnsupportedEncodingException e) {
// デフォルト文字コード指定では本例外は発生しないため、
// 呼び出し元には非チェック例外とします
logger.error(e.getMessage(), e);
throw new RuntimeException(e);
}
}
/**
*BufferedWriter
の取得
*
* @param fileName
* ファイル名称
* @param charSet
* 文字コード
*
* @returnBufferedWriter
*
* @throws FileNotFoundException
*fileName
が存在しない
* @throws UnsupportedEncodingException
* 指定したcharSet
が不正
*/
public BufferedWriter getBufferedWriter(String fileName, String charSet)
throws FileNotFoundException, UnsupportedEncodingException {
FileOutputStream stream = new FileOutputStream(fileName);
return new BufferedWriter(new OutputStreamWriter(stream, charSet));
}
/**
*BufferedReader
のclose
*BufferedReader::close
で例外が発生した場合、warnレベルのログ出力をして終了し、
* 呼び出し元には例外を戻しません
*
* @param bufferedReader
* BufferedReader
*/
public void close(BufferedReader bufferedReader) {
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException e) {
logger.warn(e.getMessage(), e);
}
}
}
/**
*BufferedWriter
のclose
*BufferedWriter::close
で例外が発生した場合、warnレベルのログ出力をして終了し、
* 呼び出し元には例外を戻しません
*
* @param bufferedReader
* BufferedReader
*/
public void close(BufferedWriter bufferedWriter) {
if (bufferedWriter != null) {
try {
bufferedWriter.close();
} catch (IOException e) {
logger.warn(e.getMessage(), e);
}
}
}
}
0 コメント:
コメントを投稿