使用 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 必须是一些不可打印的字符,因此您看不到它。