如何实现java读取text文件为String?

Python014

如何实现java读取text文件为String?,第1张

BufferedReader br=new BufferedReader(new FileReader(fileName))\x0d\x0aString line=""\x0d\x0aStringBuffer buffer = new StringBuffer()\x0d\x0awhile((line=br.readLine())!=null){\x0d\x0abuffer.append(line)\x0d\x0a}\x0d\x0aString fileContent = buffer.toString()

第一行:字符串池创建了“中国” 对象,new一次创建一个对象

小计:4个String对象 1个字符串池对象

第二行:“中国”在字符串池已经存在,所以不创建对象直接引用

小计:0

第三、四行:“中”,“国”在字符串池不存在所以创建2次

小计:2个字符串池对象

第五行:str2 + str3=“中国”,因为“中国”已经存在,字符串池不添加,new对象添加一个

小计:1个String对象 0个字符串池对象

汇总5个String对象 3个字符串池对象

复制网上一段解释

ps:String a="abc",这行代码被执行的时候,JAVA虚拟机首先在字符串池中查找是否已经存在了值为"abc"的这么一个对象,它的判断依据是String 类equals(Object obj)方法的返回值。如果有,则不再创建新的对象,直接返回已存在对象的引用;如果没有,则先创建这个对象,然后把它加入到字符串池中,再将它的引用返 回。

我也是菜鸟,尽量把答案表达清楚,不足之处请赐教

string1="aaa"

string2="aaa"

String

string3

=

new

String("aaa")

String

string4

=

new

String("aaa")

而在这四条语句中,

string1==string2;//成立

string1.equals(string2)//返回true

string3==string4;//false

string3.equals(string4)//返回true

弄明白这四个结果,这个问题就解决了

首先string1="aaa"和string2="aaa"

都指向常量池的同一个对象aaa

其调用==和X.

equals(Y)方法其效果是一样的

而String

string3

=

new

String("aaa")和

String

string4

=

new

String("aaa")是在heap堆中创建两个新对象,他们引用的地址是不同的,从而使得==出现不相等的情况,而X.

equals(Y)当x和Y所引用的对象是同一类对象且属性内容相等(并不一定是相同对象)时返回true,就出现了上面的结果。