【java后端】第二次实践项目中的IO流的运用

本文介绍了如何使用Java的IO流和序列化技术存储HashSet数据到文件,并详细展示了创建文件、序列化存储集合对象以及反序列化读取文件内容的步骤。通过这些步骤,可以有效地在程序运行期间保存和恢复数据。
摘要由CSDN通过智能技术生成

由于还没没学到数据库,目前就使用IO流存储文件信息以便程序读入读取。

基于这个前提,存储数据信息的步骤如下:

①创建需要储存信息的文件

 File file=new File("文件路径");
        if (!file.exists()){
            try {
                file.createNewFile();
                HashSet<UidJid>list=new HashSet<>();
                ObjectOutputStream ois=new ObjectOutputStream(new FileOutputStream("src/project02/information/yourWorkInformation.txt"));
                ois.writeObject(list);
                ois.flush();
                ois.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

 ②:将集合对象序列化存储到文件

HashSet<UidJid>list=new HashSet<>();
                ObjectOutputStream ois=new ObjectOutputStream(new FileOutputStream("src/project02/information/yourWorkInformation.txt"));
                ois.writeObject(list);
                ois.flush();
                ois.close();

这段代码是将集合内容序列化存储在文件中,当我们需要使用文件中的数据则需要通过反序列化把信息存入集合获得我们所需要的数据信息。

注:写入流在改变文件内容之后最好刷新一下再关闭。

③反序列化获取文件内容到集合:

而反序列化的流程如下:

 public static void checkWork() throws IOException, ClassNotFoundException {
        ObjectInputStream jis = new ObjectInputStream(new FileInputStream("src/project02/information/yourWorkInformation.txt"));
        HashSet<UidJid> list  = (HashSet<UidJid>)jis.readObject();
        jis.close();
        for (UidJid uidJid : list) {
            if (uidJid.getUid().equals(CurrentUser.currentUser.getUid())){
                ObjectInputStream ins=new ObjectInputStream(new FileInputStream(new File(JOB_INFORMATION)));
                ArrayList<Job>jjs=(ArrayList<Job>)ins.readObject();
                ins.close();
             for (Job jj : jjs) {
                    if (jj.getJid().equals(uidJid.getJid())){
                        System.out.println(jj);
                    }

                }
            }


        }
        System.out.println("以下是您正在完成的工作。"+list);
        jis.close();
    }

读取文件,将文件内容读取到集合,遍历集合根据自身需要获取数据。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值