2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Javaでのテキストファイル入出力を思い出せないのでまとめてみた

Last updated at Posted at 2018-06-02

どういうわけか、プロジェクトが変わる毎に、利用するプログラミング言語も変わることが多い。
毎回、テキストファイルの入出力がどうだったか、ググってしまう。
今の現場は、Javaなので、まとめみる!

書き込み

List<String> lines = new ArrayList<>();
lines.add(LocalDateTime.now().toString());

final String baseDir = "c:/tmp";
File f = new File(baseDir + "/timestamp.txt");
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
lines.forEach(line -> {
	try {
		bw.write(line);
		bw.newLine();
	} catch (IOException e) {
		e.printStackTrace();
	}
});
bw.close();
  • 改良版。クロースを書かなくても大丈夫になっている
  • 最後にcatchの部分が増えているので、修正前の方が見やすい。
  • と言うわけで、改良できていない?!
List<String> lines = new ArrayList<>();
lines.add(LocalDateTime.now().toString());

final String baseDir = "c:/tmp";
File f = new File(baseDir + "/timestamp.txt");
try (BufferedWriter bw = new BufferedWriter(new FileWriter(f));) {
	lines.forEach(line -> {
		try {
			bw.write(line);
			bw.newLine();
		} catch (IOException e) {
			e.printStackTrace();
		}
	});
} catch (IOException e) {
	for (Throwable t : e.getSuppressed()) {
		t.printStackTrace();
	}
}

読み込み

final String baseDir = "c:/tmp";
File f = new File(baseDir + "/timestamp.txt");
StringBuffer sb = new StringBuffer();
String[] lineSeparator = { "" };
BufferedReader br = new BufferedReader(new FileReader(f));
br.lines().forEach(line -> {
	sb.append(lineSeparator[0]);
	sb.append(line);
	lineSeparator[0] = System.lineSeparator();
});
br.close();
  • こちらも改良版を作りました。
final String baseDir = "c:/tmp";
File f = new File(baseDir + "/timestamp.txt");
StringBuffer sb = new StringBuffer();
String[] lineSeparator = { "" };
try (BufferedReader br = new BufferedReader(new FileReader(f));) {
	br.lines().forEach(line -> {
		sb.append(lineSeparator[0]);
		sb.append(line);
		lineSeparator[0] = System.lineSeparator();
	});
} catch (Exception e) {
	e.printStackTrace();
}
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?