使用 BufferedWriter/Reader 添加行数
Adding number of lines with BufferedWriter/Reader
请帮我添加原始文件的行数。
我正在尝试将满足指定条件的行从文件 A 写入文件 B。没有问题,但我需要将文件 A 的行数写入文件 B 的末尾,并添加行数文件 B.
程序通过文件A运行,如果满足条件,行被写入文件B,但是我坚持在那之后添加行数。
在过去的 2 个小时里,我已经尝试了第二个 BufferedWriter、第二个 "try" 块、bw.write(lines) 等等,但没有任何效果。 System.out.println(lines) 效果很好,所以我真的很困惑。
这是我的实际代码:
try (
BufferedReader bReader = new BufferedReader(new FileReader("fileA.txt"));
BufferedWriter bWriter = new BufferedWriter(new FileWriter("fileB.txt"));
LineNumberReader lineNumberReader = new LineNumberReader(new FileReader("fileA.txt"));
){
lineNumberReader.skip(Long.MAX_VALUE);
int lines = lineNumberReader.getLineNumber();
lineNumberReader.close();
String line;
while ((line = bReader.readLine()) != null){
String[] values = line.split(" ");
int time = Integer.parseInt(values[3]);
if (time < 16){
bWriter.write(values[0] + ' ' + values[1] + ' ' + values[2] + "\n");
}
}
}
您可以通过在 while
循环之后添加 bWriter.write(""+lines);
来实现。
您必须使用 bWriter.write(string)
而不是 bWriter.write(int)
。
bWriter.write(string)
- string
值按原样写入文件。
bWriter.write(int);
- 它不会起作用,因为传递的 int
被转换为相应的 char
然后写入文件。对应于您的 lines
值的 char
必须是一些不可打印的字符,因此您看不到它。
请帮我添加原始文件的行数。
我正在尝试将满足指定条件的行从文件 A 写入文件 B。没有问题,但我需要将文件 A 的行数写入文件 B 的末尾,并添加行数文件 B.
程序通过文件A运行,如果满足条件,行被写入文件B,但是我坚持在那之后添加行数。
在过去的 2 个小时里,我已经尝试了第二个 BufferedWriter、第二个 "try" 块、bw.write(lines) 等等,但没有任何效果。 System.out.println(lines) 效果很好,所以我真的很困惑。
这是我的实际代码:
try (
BufferedReader bReader = new BufferedReader(new FileReader("fileA.txt"));
BufferedWriter bWriter = new BufferedWriter(new FileWriter("fileB.txt"));
LineNumberReader lineNumberReader = new LineNumberReader(new FileReader("fileA.txt"));
){
lineNumberReader.skip(Long.MAX_VALUE);
int lines = lineNumberReader.getLineNumber();
lineNumberReader.close();
String line;
while ((line = bReader.readLine()) != null){
String[] values = line.split(" ");
int time = Integer.parseInt(values[3]);
if (time < 16){
bWriter.write(values[0] + ' ' + values[1] + ' ' + values[2] + "\n");
}
}
}
您可以通过在 while
循环之后添加 bWriter.write(""+lines);
来实现。
您必须使用 bWriter.write(string)
而不是 bWriter.write(int)
。
bWriter.write(string)
- string
值按原样写入文件。
bWriter.write(int);
- 它不会起作用,因为传递的 int
被转换为相应的 char
然后写入文件。对应于您的 lines
值的 char
必须是一些不可打印的字符,因此您看不到它。