Javaのファイルの読み込みと書き込みのサンプルです。
BufferedReaderクラスとBufferedWriterクラスはバッファを使用します。
| 確認環境 ・Java 8 |
目次
BufferedReaderクラス
- バッファを利用してファイルを読み込むのでディスクアクセスが減り処理効率がよくなります。
- 以下はJava8 API仕様のBufferedReaderクラスのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/io/BufferedReader.html
BufferedWriterクラス
- バッファを利用してファイルに書き込むのでディスクアクセスが減り処理効率がよくなります。
- 以下はJava8 API仕様のBufferedWriterクラスのリンクです
https://docs.oracle.com/javase/jp/8/docs/api/java/io/BufferedWriter.html
サンプルコード
指定したフォルダ配下のファイル(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クラス)