public static void read3() throws IOException{
File f=new File("c:\\a2.txt");
FileInputStream fr=new FileInputStream(f);
byte[]buf=new byte[8];
int len;
while((len=fr.read(buf))!=-1)
{
for(int i=0;i<len;i++)
System.out.print((char)buf[i]);
}
fr.close();
}
设c2文件中的数据全为字母:
womendeheima
奇怪的是:
len=fr.read(buf);
中的read()方法当到达流末尾是-1时,则返回-1
第一次:读出womendeh 成功
第二次:只剩下eima, 此时读到最后的a后,已到达末尾了,len=-1,照理说,现在应该退出循环了,为什么还能读出能,而且len=4.
望高人解析,
|