IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 循环反序列化多个对象(java.io.StreamCorruptedException: invalid type code: AC) -> 正文阅读

[Java知识库]循环反序列化多个对象(java.io.StreamCorruptedException: invalid type code: AC)

目录

1. 情况说明:在循环返序列化的过程中出现如下bug

2. 产生原因:我在创建输出对象流的时候,设置成了可追加状态

3. 解决方法:把true删掉即可

4. 可执行的源码

5. 结果


?1. 情况说明:

在循环返序列化的过程中出现如下bug:

2.产生原因:

我在创建输出对象流的时候,设置成了可追加状态

       // 创建一个对象输出流
  ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("C:\\ZProject\\Java\\JavaBase\\test\\src\\com\\objectStream\\data.txt",true));

3. 解决方法:

????????把true删掉即可

4. 可执行的源码:

package com.objectStream;

import java.io.*;

public class ObjectOutputStreamExample {
    public static void main(String[] args) throws Exception {
       // 创建一个对象输出流
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("C:\\ZProject\\Java\\JavaBase\\test\\src\\com\\objectStream\\data.txt"));

        // 创建两个对象
        Student student1 = new Student("张小蓝", "永远的爱", "dushangxilou", 23);
        Student student2 = new Student("李晓清", "消融的雪", "xifengdiaobishu", 15);
        Student student3 = new Student("顾美琪", "寂静的宇宙", "wangjintianyalu", 15);
        Student student4 = new Student("陈佳佳", "温暖的阳关", "denghuolanshanchu", 15);

        // 对象序列化
        objectOutputStream.writeObject(student1);
        objectOutputStream.writeObject(student2);
        objectOutputStream.writeObject(student3);
        objectOutputStream.writeObject(student4);

        // 关闭流文件
        objectOutputStream.close();

        // 创建对象输入流
        FileInputStream fn = new FileInputStream("C:\\ZProject\\Java\\JavaBase\\test\\src\\com\\objectStream\\data.txt");
        ObjectInputStream inputStream = new ObjectInputStream(fn);
        Student s;
        // 判断文件字节流是否大于0,文件中存在内容,小于0表示文件中不存在内容, 循环反序列化每个文件
        while (fn.available() > 0){
            // 将对象反序列化
            s = (Student) inputStream.readObject();
            System.out.println(s );
        }
        // 关闭流文件
        inputStream.close();
        fn.close();
    }
}
package com.objectStream;

import java.io.Serializable;

public class Student implements Serializable {
    private String name;
    private String loginName;
    private String passWord;
    private int age;

    public Student() {
    }

    public Student(String name, String loginName, String passWord, int age) {
        this.name = name;
        this.loginName = loginName;
        this.passWord = passWord;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", loginName='" + loginName + '\'' +
                ", passWord='" + passWord + '\'' +
                ", age=" + age +
                '}';
    }
}

5. 结果:

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:35:37  更:2022-03-21 20:38:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:30:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码