使用BufferedWriter / Reader添加行数

时间:2018-05-05 13:23:42

标签: java bufferedreader lines bufferedwriter

请帮我添加原始文件的行数。

我试图写出符合指定条件的行,从文件A到文件B.没有问题,但是我需要将文件A的行数写入文件B的末尾,并且还要添加文件B的行数

程序在文件A中运行,如果满足条件,则行被写入文件B,但是我坚持在此之后添加行数。

在过去的2个小时里,我已经尝试了第二个BufferedWriter,第二个"尝试" block,bw.write(lines)等等,但没有任何效果。 System.out.println(行)工作得很好,所以我真的很困惑。

这是我的实际代码:

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");
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

您可以在bWriter.write(""+lines);循环后添加while来完成此操作。

您必须使用bWriter.write(string)代替bWriter.write(int)

bWriter.write(string) - string值按原样写入文件。

bWriter.write(int); - 它不起作用,因为传递的int转换为相应的char,然后写入文件。与您的char值对应的lines必须是某些不可打印的字符,因此您无法看到它。