1.对象序列化工具类

对象序列化工具类

  • 需要更换实体类,且使用ArrayList集合,序列化和反序列化的单位是集合
  • 这是程序中对象与文件间的序列化和反序列化。
  • 序列化流不仅可以文件上的对象传输,还可以网络上的对象传输
/**
 * 数据持久化工具类
 * 1.读取文件-->将数据转成集合
 * 2.将集合-->写入文件
 * 传递的是对象,使用序列化流最方便,对象的序列化操作。
 */
public class IOUtil {
    private static File file=new File("快递信息.txt");//相对路径
    /**
     * 将数据(集合)写入文件
     * 使用序列化流,写到文件的是对象的二进制数据,在文本中是乱码
     * @param list
     */
    public static void writeToFile(ArrayList<Express>list) {
        //将文件流转成序列化流,使用JDK9的异常处理,自动释放资源
       try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file))){
            oos.writeObject(list);//将整个集合序列化到文件中
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    /**
     * 从文件读取数据,使用反序列化流,将二进制读成集合对象
     * 要预防文件不存在时的异常,保证可以拿到一个集合(即使是空的)
     * @return
     */
    public static ArrayList<Express> readFromFile(){
        if (!file.exists()||file.length()==0) return new ArrayList<>();
        try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))){
            return (ArrayList<Express>) ois.readObject();//读成一个集合并返回
        } catch (IOException |ClassNotFoundException e) {
            e.printStackTrace();
        }
        return new ArrayList<>();
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值