Добавление количества строк с помощью BufferedWriter / Reader - PullRequest
0 голосов
/ 05 мая 2018

Пожалуйста, помогите мне с добавлением количества строк исходного файла.

Я пытаюсь записать строки, которые удовлетворяют указанным условиям, из файла A в файл B. Нет проблем, но мне нужно записать количество строк файла A в конец файла B, а также добавить количество строк файла B .

Программа запускается через файл A, если условие выполнено, строка записывается в файл B, однако я застрял, чтобы добавить количество строк после этого.

За последние 2 часа я уже попробовал второй BufferedWriter, второй блок "try", bw.write (линии) и многие другие, но ничего не получалось. 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 голосов
/ 05 мая 2018

Вы можете сделать это, добавив bWriter.write(""+lines); после цикла while.

Вы должны использовать bWriter.write(string) вместо bWriter.write(int).

bWriter.write(string) - значение string записывается в файл как есть.

bWriter.write(int); - Это не будет работать, потому что переданный int преобразуется в соответствующий char, а затем записывается в файл. char, соответствующее вашему значению lines, должно быть каким-то непечатным символом, и, следовательно, вы не сможете его увидеть.

...