【发布时间】:2013-07-11 15:52:38
【问题描述】:
我的问题与 readLine() 如何影响文件中的当前位置有关。
假设我有一个文件,其中包含以下内容:
1
如果我说
r.readLine()
那么它将返回“1”
如果我再做一个
r.readLine()
它将返回“null”,因为只有一行。
所以 - 如果我在这样的 while 语句中检查该行:
while (r.readLine!=null){
//Do something here
}
所以这应该一直运行到它遇到一个空行然后退出。
但是,如果我想做类似的事情:
String line;
if ((line = r.readLine()).equals("1"))
//Then do something....
else if ((line = r.readLine()).equals("2"))
//Then do something else
显然,当我进行第二次检查时,读取位置已移至下一行。
我试着做这样的事情:
String line = r.readLine();
if (line=='1')
//do Something
else if (line=="2")
//do something else.
...但是,我得到了一些非常奇怪的结果。如果可以使用 System.out.println 命令确认字符串 'line' 等于 1(或任何值)。但是当我尝试在 if 语句中使用它时,条件似乎永远不会触发......
我们将不胜感激。
【问题讨论】:
-
在第一个 sn-p 中,您使用
equals正确比较了您的字符串,为什么在第二个 sn-p 中将其更改为==? -
@RohitJain,也许,但是当我问这个问题时,我不知道我没有正确比较字符串,因此我没有问“我如何比较字符串” - 如果你明白我的意思!
标签: java file io bufferedreader readline