FileName.println (String);пропускает все остальные строки - PullRequest
0 голосов
/ 23 октября 2019

Мне нужно изменить данные измерений из эксперимента в .txt-файле. Я пытался читать по одной строке за раз из файла, изменять его, а затем записывать в новый файл. Тем не менее, мой выходной файл содержит только все остальные строки из ввода. Может ли кто-нибудь объяснить мою ошибку?

import java.io.*;

public class TextMod {
    public static void main(String[] args) throws IOException {
        File file = new File("C:\\Users\\ediwi\\Desktop\\Exfys A\\Java\\Code\\DataPointsModded.txt");
        BufferedReader inFile = new BufferedReader(new FileReader("me99.txt"));
        PrintWriter outFile = new PrintWriter(new BufferedWriter(new FileWriter(file)));
        int counter = 0;

        while (true) {
            String s = inFile.readLine();
            if (counter < 11) { // I want to skip the first couple of lines
                counter++;
                continue;
            } else if (inFile.readLine() == null) {
                System.out.println(counter - 11 + "Datapoints.");
                break;
            } else outFile.println(s.replaceAll("\\t", ";"));
            counter++;
        }
        outFile.close();
    }
}

1 Ответ

0 голосов
/ 23 октября 2019

Ошибка была в строке 21, как указано в комментарии выше к PM 77-1:

} else if (inFile.readLine() == null) {

Это должно быть

} else if (s == null) {

...