美文网首页
java对象输入输出流-向文件中写入多个对象并读取出来

java对象输入输出流-向文件中写入多个对象并读取出来

作者: ssttIsme | 来源:发表于2019-03-24 18:13 被阅读0次

readObject()读取到文件最后会有java.io.EOFException异常(读取不到对象),进行try{}catch(){}捕捉即可

定义一个学生类

package io;

import java.io.Serializable;

public class Student implements Serializable{

    private static final long serialVersionUID = 1L;
    private Integer id;
    private String name;
    public Student() {
    }
    public Student(Integer id, String name) {
        this.id = id;
        this.name = name;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + "]";
    }
    
    
}

写测试方法

package io;

import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

/**
 * 向文件中写入多个对象并读取出来
 */
public class TestObjectStream {
    public static void main(String[] args) throws Exception{
        //向文件中写入对象
        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("student.txt"));
        Student s1=new Student(1,"张三");
        Student s2=new Student(2,"李四");
        Student s3=new Student(3,"王五");
        Student s4=new Student(4,"赵六");
        oos.writeObject(s1);
        oos.writeObject(s2);
        oos.writeObject(s3);
        oos.writeObject(s4);
        oos.close();
        //读取对象
        ObjectInputStream ois=new ObjectInputStream(new FileInputStream("student.txt"));
        while(true){
            try {
                Student stu = (Student) ois.readObject();
                System.out.println(stu);
            } catch (EOFException e) {
                System.out.println("读取完毕");
                break;
            }
        }
        ois.close();
    }
}

运行结果

Student [id=1, name=张三]
Student [id=2, name=李四]
Student [id=3, name=王五]
Student [id=4, name=赵六]
读取完毕

生成了一个文件


相关文章

  • java对象输入输出流-向文件中写入多个对象并读取出来

    readObject()读取到文件最后会有java.io.EOFException异常(读取不到对象),进行try...

  • 四十五、序列化与反序列化

    用于向流中写入对象的操作流 ObjectOutputStream 称为 序列化流用于从流中读取对象的操作流 O...

  • 对象输入输出流

    对象的输入输出流: 对象的输入输出流 主要的作用是用于写对象的信息与读取对象的信息。对象信息一旦写到文件上那么对象...

  • 基础

    1 标准输入输出对象: cin :istream对象,从标准输入读取数据 cout:ostream对象,将数据写入...

  • Java基础(10)——基本文件输入输出流

    本节内容1.文件简介和创建2.文件类型和过滤3.输入输出流4.图片读取并写入5.图片和文本读取和写入 一、文件简介...

  • Java 一些操作记录

    读取文件先创建一个 File 对象,FileReader 对象读取文件;FileWriter 写入文件;Buffe...

  • Java IO流

    标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流等等,java中将输入输出抽象称为流,就好...

  • JAVA -----文件操作

    File文件操作: 创建文件 向文件写入数据-字节流 向文件写入数据-字符流 向文件里面存一个对象序列化 seri...

  • Java序列化

    Java 提供了一种对象序列化的机制,一个对象可以被表示为一个字节序列,将序列化对象写入文件之后,可以从文件中读取...

  • Java中序列化和打印流

    一、对象序列化和反序列化 1、概述 对象的序列化:对象中的数据,以流的形式,写入到文件中并保存的过程称为写出对象,...

网友评论

      本文标题:java对象输入输出流-向文件中写入多个对象并读取出来

      本文链接:https://www.haomeiwen.com/subject/sxauvqtx.html