如何读取文件的行?

时间:2013-07-14 19:54:06

标签: java io

我有一个文件包含两行:

aaaaa
bbbbb

我使用这些行来读取每一行:

    File f=new File("D:\\xxx.dat");
    FileReader fr = new FileReader(f);
    BufferedReader br = new BufferedReader(fr);
    String str;
    String tmpp="";
    while ((str = br.readLine()) != null) {
         if(str=="bbbbb")
         {
         System.out.print(str);
         }
    }

但结果没什么。为什么?

4 个答案:

答案 0 :(得分:6)

而不是

if(str=="bbbbb")

if(str.equals("bbbbb"))

字符串相等是初学者和其他语言程序员的常见错误。

答案 1 :(得分:1)

因为你正在使用" =="而不是等于方法。

答案 2 :(得分:1)

您正在使用==来比较字符串。

String不是基本类型,因此您应该使用.equals()方法。

当你将两个字符串与==进行比较时,它会比较两个对象并返回false,因为它们没有指向同一个String对象(即使它们代表相同的东西)。

为了更好地理解为什么要看一下这个答案https://stackoverflow.com/a/73021/2576857,它给了IMO一个很好的解释。

答案 3 :(得分:0)

看起来您的输入文件第一行包含的不仅仅是“bbbbb”。 请检查在if之前的str的值并使用equals方法比较字符串(比较值而不是引用)