Java ファイルの読み込みと書き込み(バッファを使用するクラス)

Javaのファイルの読み込みと書き込みのサンプルです。
BufferedReaderクラスとBufferedWriterクラスはバッファを使用します。

確認環境
・Java 8

目次

BufferedReaderクラス

BufferedWriterクラス

サンプルコード

指定したフォルダ配下のファイル(test1.txt)を読み込み、その内容を別のファイル(test2.txt)に書き出しています。

※注 現在ファイルの読み書きは一般的にJava7で追加されたjava.nio.file.Filesが使用されます。
Java テキストファイルの読み書きのサンプル(Filesクラス)
以下のサンプルは古い書き方です。
package test1;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;

public class Test1 {
    public static void main(String[] args) {
        
        String dir = "E:\\workspace123abc";
        String file1 = "\\test1.txt";
        String file2 = "\\test2.txt";
        String charset = "Shift_JIS";
        
        try (
        	FileInputStream fi = new FileInputStream(dir + file1);
        	InputStreamReader is = new InputStreamReader(fi,charset);
        	BufferedReader reader = new BufferedReader(is);
        		
        	FileOutputStream fo = new FileOutputStream(dir + file2);
        	OutputStreamWriter ow = new OutputStreamWriter(fo,charset);
        	BufferedWriter writer = new BufferedWriter(ow);
        ){
            while (reader.ready()) {
            	writer.write(reader.readLine());
            	writer.newLine();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

19-24行目は、try-with-resources構文です。リソースを自動でクローズします。
21,25行目のBufferedReaderクラスとBufferedWriterクラスは、バッファ処理が使えるようになり処理の性能が上がります。
27行目は、ストリームが読込み可能かどうかを判定しています。
28行目は、テキスト行を読み込んで書き込みを行っています。
29行目は、改行文字を書き込んでいます。

関連の記事

Java テキストファイルの読み書きのサンプル(Filesクラス)
Java バイナリファイルの読み込みと書き込み
Java ファイルの読み込みと書き込み(文字コードを指定するクラス)
Java フォルダ内のファイルの一覧を取得するサンプル(Fileクラス)
Java ドライブの容量と空き容量を取得するサンプル(Fileクラス)

△上に戻る