Java テキストを読み込み、書き込むサンプルプログラム
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class ReadWriteFile { File toReadFile = null; File toWriteFile = null; FileReader fileReader = null; FileWriter fileWriter = null; BufferedWriter bufferWriter = null; BufferedReader bufferReader = null; public static void main(String[] args) { ReadWriteFile readFile = new ReadWriteFile(); readFile.readAndWrite(); } public void readAndWrite() { toReadFile = new File("toRead.txt"); toWriteFile = new File("toWrite.txt"); try { fileReader = new FileReader(toReadFile); fileWriter = new FileWriter(toWriteFile); bufferWriter = new BufferedWriter(fileWriter); bufferReader = new BufferedReader(fileReader); String readString = null; while((readString = bufferReader.readLine()) != null) { bufferWriter.write(readString); bufferWriter.newLine(); } bufferWriter.flush(); } catch (FileNotFoundException e) { //例外発生時の処理 e.printStackTrace(); } catch (IOException e) { //例外発生時の処理 e.printStackTrace(); }finally { if(bufferReader != null) { try { bufferReader.close(); } catch (IOException e) { //例外発生時の処理 e.printStackTrace(); } } if(bufferWriter != null) { try { bufferWriter.close(); } catch (IOException e) { //例外発生時の処理 e.printStackTrace(); } } } } }
BufferedReaderやBufferedWriterでclose()をするとFileReaderとFileWriterもclose()したことになるらしい。
あと、当たり前かもですがfinallyでclose()するようにしています。
tryの中で例外が発生した時にちゃんとファイルをクローズできるように。