Java バッファでファイルの読み込みと書き込み

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

確認環境
・Java 8

目次

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

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

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

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)

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

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 テキストファイルの読み書き(NIO.2のFiles)
Java バイナリファイルの読み込みと書き込み
Java ファイルの読み書き(文字コードを指定するクラス)
Java フォルダ/ファイルの一覧を取得(Fileクラス)
Java ドライブの容量と空き容量を取得(Fileクラス)

△上に戻る