首页 > 解决方案 > 替换文本文件的一行

问题描述

我正在尝试读取文本文件的第一行,然后用不同的内容替换该行。第一行是一个 int 值,所以首先我将其更改为当前值的 +1。

BufferedWriter writer = new BufferedWriter( new FileWriter("file.txt", true)); 

BufferedReader reader = new BufferedReader( new FileReader("file.txt"));

String amount;

amount = reader.readLine();

int amount1 = Integer.parseInt(amount);
amount1 = amount1 + 1;
String amount2 = String.valueOf(amount1);
amount = amount.replace(amount, amount2);

writer.write(amount);

它不会用新值替换原始值,而是将新值写入旧值旁边。

标签: javabufferedreader

解决方案


更改文本文件时必须替换整个文件。

Path path = Paths.get("file.txt");
Charset charset = Charset.defaultCharset();
List<String> lines = Files.readAllLines(path, charset);
String firstLine = lines.get(0);
...
lines.set(0, firstLines);
Files.write(path, lines, charset);

但是,如果您注意第一行的长度永远不会改变,并且有足够的空间,您可以使用 a RandomAccessFile,并且只更改那段文本。


推荐阅读