ObjectInputStream throws EOFException

来源:互联网 发布:脱脂牛奶 知乎 编辑:程序博客网 时间:2024/05/18 03:11

关于这个异常是因为  创建流  读取目标文件的时候 目标文件里面没有内容

如果跳出这个debug 点击去看

void readFully(byte[] b, int off, int len) throws IOException {
   int n = 0;
   while (n < len) {
int count = read(b, off + n, len - n);
if (count < 0) {
   throw new EOFException();
}
n += count;
   }
}

发现count <0会抛出这个异常   

而   count的由来   int count = read(b, off + n, len - n);

所以是因为read返回值小于0  所以导致的

有兴趣的可以在往里面翻源代码  可以发现文件为空会返回-1

原创粉丝点击