再写jsp的实验作业的时候,需要用到java中对象流,但是碰到了之前没有遇到过的情况,改bug改到崩溃!!记录下来供大家分享

如果要用对象流去读取一个文件,一定要先判断这个文件的内容是否为空,如果为空的话,就是连对象流的实例对象也不要创建,一创建就会报错。

错误代码实例:

public static void main(String[] args){
ObjectInputStream ois = null;
File file = new File("F:\\MessageBroad.txt");
try{
ois = new ObjectInputStream(new FileInputStream(file));//一创建实例就会报错
Student stu = (Student) ois.readObject();
System.out.println(stu);
} catch(IOException exception){
exception.printStackTrace();
} catch(ClassNotFoundException e){
e.printStackTrace();
}finally{
try{
ois.close();
}catch(IOException e){
System.out.println("文件关闭异常");
}
}
}

具体错误如下:

所以在读取之前,一定要判断这个文件是否存在且内容是否为空:

更改代码如下:

public static void main(String[] args){
ObjectInputStream ois = null;
File file = new File("F:\\MessageBroad.txt");
if(!file.exists() || file.length()!=0) {//特别判断一下
try{
ois = new ObjectInputStream(new FileInputStream(file));
Student stu = (Student) ois.readObject();
System.out.println(stu);
} catch(IOException exception){
exception.printStackTrace();
} catch(ClassNotFoundException e){
e.printStackTrace();
}finally{
try{
ois.close();
}catch(IOException e){
System.out.println("文件关闭异常");
}
}
}
}

最新文章

  1. php链接数据库 批量删除 和 注册审核
  2. (转)iOS安全 对本地文件的保护
  3. 轻松玩转jquery。
  4. 利用yii2 gridview实现批量删除案例
  5. Update DN with Procedure
  6. 关于Aspose对于Word操作的一些扩展及思考
  7. perl 分析binlog 定位错误sql 思路
  8. ie条件注释还能这样写
  9. 【安卓笔记】高速的发展设置界面-----PreferenceActivity
  10. (转)Spring事务配置的五种方式
  11. Virtual Box配置CentOS7网络
  12. TensorFlow与OpenCV,读取图片,进行简单操作并显示
  13. pdf.js 使用实例
  14. 20175211 2018-2019-2 《Java程序设计》第五周学习总结
  15. 从路由器镜像中提取uImage头信息
  16. Liferay开发人员培训计划
  17. spring cloud bus原理总结
  18. JDK的下载及配置
  19. Javascript-string-Array
  20. oracle中for循环

热门文章

  1. 利用JProfile 7分析内存OOM
  2. linux进程间通信——netlink【转】
  3. ios下使用overflow scroll情况下,到达最极端的情况时会拖动整个页面的解决办法
  4. 使用Java实现图像分割
  5. 生成 Guid
  6. WebSphere Application Server切换JAVA SDK版本
  7. php 5.6 版本配置 oracle ddl
  8. 405 Convert a Number to Hexadecimal 数字转换为十六进制数
  9. 流式套接字(SOCK_STREAM),数据报套接字 (SOCK_DGRAM) 的比较
  10. 268 Missing Number 缺失的数字