Программа чтения файлов не возвращает мне ту же строку

У меня есть базовое чтение из файла.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")

Кажется, это работает.

Другие вопросы по тегам