Программа чтения файлов не возвращает мне ту же строку
У меня есть базовое чтение из файла.txt, но я не могу понять, почему строка отличается?!
мой текстовый файл имеет 10 строк "ZZZ" на каждой строке. когда я пытаюсь сравнить его со строкой "zzz", говорит, что они не совпадают. Зачем? Это потому, что читатель пытается прочитать до следующего разделителя? Итак, теперь в строке есть мой "zzz" + разделитель? Как я могу удалить это из моей строки? Могу ли я сделать что-то вроде print(myString.length()-1)?
Это код. Я посмотрел что-то похожее, но ничего не получил.
try {
Scanner rf = new Scanner(new BufferedReader(new FileReader("Data Saved.txt")));
String fileLine;
while ( rf.hasNext()) {
fileLine = rf.next();
if(fileLine == "zzz") System.out.print("yes ");
else System.out.print("no ");
System.out.println(fileLine);
}
rf.close();
} catch (IOException e) {
System.out.println("Error IOException is: " + e);
}
На выходе нет zzz, 10 раз.
2 ответа
Вы должны использовать readLine
способ избежать разрывов строк, см. http://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html
Спасибо вам за это. Не имел представления. Я попытаюсь использовать это, чтобы видеть, как это работает. Мне удалось справиться с проблемой, используя:
if (fileLine.equals ("zzz"))
вместо
if ( fileLine == "zzz")
Кажется, это работает.