gpt4 book ai didi

java - BufferedReader readLine() 和移动文件

转载 作者:行者123 更新时间:2023-12-01 18:46:23 24 4
gpt4 key购买 nike

我的问题涉及 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 语句中使用它时,条件似乎永远不会触发......

如有任何帮助,我们将不胜感激。

最佳答案

if (line=='1')
//do Something
else if (line=="2")
//do something else.

== 用于比较引用或原始类型,您可以使用 equals() 测试 String 相等性:

String x = "hello";
String y = "hello";

现在x == y将为true,因为它们引用字符串池中的同一个对象

String x = "hello";
String y = new String("hello");

现在x == y将是false,因为它们不再指向同一个对象,一个在字符串池中,而另一个不在字符串池中。

要正确测试,请使用equals(String):

String x = "hello";
String y = new String("hello");

x.equals(y);

将评估为true

关于java - BufferedReader readLine() 和移动文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17598019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com