第十五天:对象流EOFException的异常捕获
来源:互联网 发布:单片机毕业设计题目 编辑:程序博客网 时间:2024/05/20 03:38
需求:
*1、创建54张扑克牌,将扑克牌写入文件card.txt
*2、将写入的文件内容,读取出来,可以生成相对应的54张扑克牌
*3、保证扑克牌可以调用自己的方法
*1、创建54张扑克牌,将扑克牌写入文件card.txt
*2、将写入的文件内容,读取出来,可以生成相对应的54张扑克牌
*3、保证扑克牌可以调用自己的方法
遇到的问题以及解决方法:
1.序列化的问题:你要创建的对象在流中传输,必须将此类对象进行序列化,就是implements Serializable接口
2.EOFException的问题: 你从文件中读取对象的时候,如何判断是否读取完毕。jvm会给抛出EOFException,表示的是,文件中对象读取完毕。所以呢,你在判断是否读取结束的时候,捕获掉这个异常就可以,是捕获不是抛出。
重要的说三次,是捕获,捕获,捕获!
代码如下:
package day02;import java.io.EOFException;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.ArrayList;import java.util.List;/** *1、创建54张扑克牌,将扑克牌写入文件card.txt *2、将写入的文件内容,读取出来,可以生成相对应的54张扑克牌 *3、保证扑克牌可以调用自己的方法 */public class Exercis {public static void main(String[] args) throws FileNotFoundException, IOException {ObjectOutputStream os=new ObjectOutputStream(new FileOutputStream(new File("./card.txt")));List<Card> lists=new ArrayList<Card>();for(int i=Card.THREE;i<=Card.TWO;i++){lists.add(new Card(Card.HEITAO,i));lists.add(new Card(Card.HONGTAO,i));lists.add(new Card(Card.MEIHUA,i));lists.add(new Card(Card.FANGKUAI,i));}lists.add(new Card(Card.JOKER,Card.BLACK));lists.add(new Card(Card.JOKER,Card.COLOR));for(Card c : lists){os.writeObject(c);}ObjectInputStream is=new ObjectInputStream(new FileInputStream(new File("./card.txt")));while(true){Object o = null;try {o = is.readObject();if(o instanceof Card){System.out.println(o);}} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}catch(EOFException e){System.out.println("读写完毕!");os.close();is.close();break;}}}}
阅读全文
0 0
- 第十五天:对象流EOFException的异常捕获
- oop面向对象--第十五天
- Java基础第十五天--Exception异常
- 第十五天java学习笔记异常
- tomcat容器的EOFException异常
- 在读取流的时候的异常java.io.EOFException
- 学习python的第十五天
- 第十五天 python的类
- Java使用ObjectOutputStream和ObjectInputStream序列号对象报java.io.EOFException异常的解决方法
- 第十五天
- 第十五天
- 第十五天
- 第十五天
- 第十五天
- 第十五天
- 第十五天
- 转载一篇关于EOFException异常的描述
- 异常捕获的问题
- LINUX进程状态
- Django操作MySQL
- 算法 常见的排序算法
- 冒泡排序
- 八种常见的排序算法
- 第十五天:对象流EOFException的异常捕获
- c:forEach 遍历集合中的元素,判断是否是最后一个元素
- Hadoop基础教程-第5章 YARN:资源调度平台(5.3 YARN集群配置)(草稿)
- 广播域与冲突域有何区别
- 景区介绍界面(Android)
- 20170523
- POJ
- 用一条for语句计算1-15中奇数的和
- MFC对话框里利用CHtmlView加载界面(四)————分层窗口设置