java中FileInputStream.availale()方法疑问
书中有关对象输入输出的片段代码如下:while(fileInputStream.available()>0){list.add((person)objInputStrea...
书中有关对象输入输出的片段代码如下:
while(fileInputStream.available() > 0){
list.add( (person) objInputStream.readObject() );
}
fileInputStream是FileInputStream的对象。 list 是集合List的对象
这段代码是从文件中读取Object对象,强转为 Person类,存放到集合 list中。
问题是: available() 返回从此输入流中可以读取(或跳过)的剩余字节数的估计值,
available()>0我想应该是个死循环呀,调试的时候发现读取一个对象后available 的字节数再减少。
它有这个功能自己会减少,就像是文件指针在走动一样!? 展开
while(fileInputStream.available() > 0){
list.add( (person) objInputStream.readObject() );
}
fileInputStream是FileInputStream的对象。 list 是集合List的对象
这段代码是从文件中读取Object对象,强转为 Person类,存放到集合 list中。
问题是: available() 返回从此输入流中可以读取(或跳过)的剩余字节数的估计值,
available()>0我想应该是个死循环呀,调试的时候发现读取一个对象后available 的字节数再减少。
它有这个功能自己会减少,就像是文件指针在走动一样!? 展开
展开全部
这种函数正常有风险的,和数组的长度一样是可变的,正常情况下需要用一个临时变量来存储这个值,否则程序可能会陷入漏洞。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一直在读取,直到读取完,文件就读取完毕了,就不大于0了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询