file reader 没有给我返回相同的字符串
file reader doesn't get me the same string back
我对 .txt 文件进行了基本读取,但我无法弄清楚为什么字符串不同?!
我的文本文件每行有 10 行 "zzz"。
当我尝试将它与字符串 "zzz" 进行比较时,它说它们不一样。
为什么 ?
是因为 reader 试图读取到下一个分隔符吗?
所以,现在字符串有我的 "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);
}
输出是no zzz,10次。
你应该使用 readLine
方法来避免换行,见
http://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html#readLine--
谢谢你。我不知道。我会尝试使用它看看它是如何工作的。
我设法使用以下方法解决了这个问题:
if ( fileLine.equals("zzz") )
而不是
if ( fileLine == "zzz" )
看来是可以的
我对 .txt 文件进行了基本读取,但我无法弄清楚为什么字符串不同?!
我的文本文件每行有 10 行 "zzz"。 当我尝试将它与字符串 "zzz" 进行比较时,它说它们不一样。 为什么 ? 是因为 reader 试图读取到下一个分隔符吗? 所以,现在字符串有我的 "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);
}
输出是no zzz,10次。
你应该使用 readLine
方法来避免换行,见
http://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html#readLine--
谢谢你。我不知道。我会尝试使用它看看它是如何工作的。 我设法使用以下方法解决了这个问题:
if ( fileLine.equals("zzz") )
而不是
if ( fileLine == "zzz" )
看来是可以的