FileReader问题 各位大侠帮忙
import java.io.*;
public class readtest{
public static void main(String args[]){
try{
FileReader fr=new FileReader("D:\\Java\\chengxu\\mytest.txt");
LineNumberReader lnr = new LineNumberReader(fr);
String Line="";
int aa=0;
while((Line=lnr.readLine())!=null){
aa++;
FileReader fr2=new FileReader("D:\\Java\\chengxu\\mytest2.txt");
LineNumberReader lnr2 = new LineNumberReader(fr2);
String Line2="";
while((Line2=lnr2.readLine())!=null){
System.out.println("1111111"+Line2);
System.out.println("2222222"+Line);
if(Line==Line2){
System.out.println("@##$#%#");
}else{
System.out.println("缺少"+Line+"文件");
}
}
}
System.out.println(aa);
}catch(IOException obj){};
}
}
打印出Line和Line2的值是相同的 txt文件是复制的 不会有错 但为什么if判断 程序执行的是else?求解 谢谢
[解决办法]
原因是readLine()这个方法返回的是一个String对象,两个对象相比较,即使值一样,用“==”比较也是不相等的,所以"Line==Line2"返回的false,所以就执行else中的语句了,比较字符串对象的值相等用"equals()/equalsIgnoreCase()",不要用"=="
String str1 = "hello";
String str2 = "hello";
str1==str2-------->true
============================
String str1 = new String("hello");
String str2 = new String("hello");
str1==str2-------->false
str1.equals(str2)->true