Java バッファでファイルの読み書き(BufferedReader)

Javaのバッファを使用してファイルの読み込みと書き込みを行うサンプルです。
(確認環境:Java 8)

目次

サンプル バッファを使用してファイルを読み込む(BufferedReader)
  バッファを使用してファイルを書き込む(BufferedWriter)

バッファを使用してファイルを読み込む

public BufferedReader(Reader in)

BufferedReaderは、JDK1.1で導入されました。

バッファを使用してファイルを読み込むサンプルです。

package test1;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.IOException;

public class Test1 {
    public static void main(String[] args) {
        String dir = "D:\\test3";
        String file1 = "\\test1.txt";
        String charset = "Shift_JIS";
        
        try (
        	FileInputStream fis = new FileInputStream(dir + file1);
        	InputStreamReader isr = new InputStreamReader(fis,charset);
        	BufferedReader reader = new BufferedReader(isr);
        ){
            while (reader.ready()) {
            	System.out.println(reader.readLine());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

14~16行目は、try-with-resources構文です。リソースを自動でクローズします。
16行目のBufferedReaderクラスは、バッファ処理が使えるようになり処理の性能が上がります。
18行目のreadyは、ストリームが読込み可能かどうかを判定しています。
19行目のreadlineは、テキスト行を読み込みます。

以下はOracleのBufferedReaderクラスのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/io/BufferedReader.html

 

バッファを使用してファイルを書き込む(BufferedWriter)

public BufferedWriter(Writer out)

BufferedWriterは、JDK1.1で導入されました。

バッファを使用してファイルを書き込むサンプルです。

package test1;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Test1 {
    public static void main(String[] args) {
        String dir = "D:\\test1";
        String file1 = "\\test1.txt";
        String charset = "Shift_JIS";
        List<String> list = new ArrayList<>(Arrays.asList("赤","黄","青"));
        
        try (
        	FileOutputStream fos = new FileOutputStream(dir + file1);
        	OutputStreamWriter osw = new OutputStreamWriter(fos,charset);
        	BufferedWriter writer = new BufferedWriter(osw);
        ){
        	for (String a : list) {
            	writer.write(a);
            	writer.newLine();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

18~20行目は、try-with-resources構文です。リソースを自動でクローズします。
20行目のBufferedWriterクラスは、バッファ処理が使えるようになり処理の性能が上がります。
23行目のwriteは、文字列を書き込みます。
24行目のreanewLineは、改行文字を書き込みます。

以下はOracleのBufferedWriterクラスのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/io/BufferedWriter.html

関連の記事

Java テキストファイルの読み書き(Filesクラス)
Java バイナリファイルの読み書き(FileInputStream)

△上に戻る