Java ファイルの読み込みと書き込み(FileReader/FileWriter)

JavaのFileReaderとFileWriterでファイルの読み込みと書き込みを行うサンプルです。
(確認環境:Java8)

目次

サンプル FileReaderでファイルを読み込む
FileWriterでファイルに書き込む

FileReaderでファイルを読み込む

public FileReader(File file) throws FileNotFoundException

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

import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class Test1 {
	public static void main(String[] args) {
		String fileName = "D:\\Test1\\test1.txt";
		File file = new File(fileName);

		if (!file.exists()) {
			System.out.print("ファイルが存在しません");
			return;
		}

		try (FileReader fileReader = new FileReader(file)) {
			int data;
			while ((data = fileReader.read()) != -1) {
				System.out.print((char) data);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

7行目は、読み込むファイルです。円マークが2つありますが1つめはエスケープをしています。
エスケープ→円記号(バックスラッシュ)を文字として表示します。

10行目は、existsメソッドでファイルの存在確認をしています。
ビックリマークは否定を意味します。→ファイルがなかったら11行目以降を実行します。

15行目は、try-with-resources文です。
tryのブロックを抜けるときにリソース(fileReader)がcloseされます。

17行目のfileReader.read()は、文字が終了すると-1を返して変数dataにセットします。
変数dataが-1ではない間は、while文で処理を繰り返します。

https://docs.oracle.com/javase/jp/8/docs/api/java/io/FileReader.html

 

FileWriterでファイルに書き込む

public FileWriter(File file) throws IOException

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

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Test1 {
	public static void main(String[] args) {
		String fileName = "D:\\Test1\\test1.txt";
		File file = new File(fileName);

		if (!file.exists()) {
			System.out.print("ファイルが存在しません");
			return;
		}

		try (FileWriter fileWriter = new FileWriter(file)) {
			List<String> textList = new ArrayList<>();
			textList.add("hello");
			textList.add("world");

			for (String text : textList) {
				fileWriter.write(text);
				fileWriter.write("\r\n"); //改行
			}

		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

9行目は、読み込むファイルです。円マークが2つありますが1つめはエスケープをしています。
エスケープ→円記号(バックスラッシュ)を文字として表示します。

12行目は、existsメソッドでファイルの存在確認をしています。
ビックリマークは否定を意味します。→ファイルがなかったら13行目以降を実行します。

17行目は、try-with-resources文です。
tryのブロックを抜けるときにリソース(fileReader)がcloseされます。

23行目のfileWriter.write()で文字をファイルに書き込みます。

24行目は、改行を行います。FileWriterで改行をする場合は"\r\n"を使用します(Windows)。

https://docs.oracle.com/javase/jp/8/docs/api/java/io/FileWriter.html

関連の記事

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

△上に戻る