ObjectInputStream和ObjectOutputStream

原创 2018年04月17日 11:20:47

将对象进行序列化:implements Seriaizable

一个学生对象:

import java.io.*;
import java.util.Arrays;

class Student implements Serializable{//implements将对象进行序列化
    String id;
    String name;
    int age;
    public Student(String id, String name, int age) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
    }
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
    }

}
public class Main {

    public static void main(String[] args) throws IOException, ClassNotFoundException {
        Student stu = new Student("0001", "abc", 20);

        ObjectOutputStream oos= new ObjectOutputStream(new FileOutputStream("stu.dat"));//输出流写进去:写出对象
        ObjectInputStream ois= new ObjectInputStream(new FileInputStream("stu.dat"));//输入流读出来:读写对象数据

        oos.writeObject(stu);//将学生对象写出去。需要将对象进行序列化!

        Object object = ois.readObject();
        if(object instanceof Student){
            Student stu1 = (Student )object;//还原数据
            System.out.println(stu1);
        }

        oos.close();
        ois.close();
    }

}

学生对象数组:

import java.io.*;
import java.util.Arrays;

class Student implements Serializable{//implements将对象进行序列化
    String id;
    String name;
    int age;
    public Student(String id, String name, int age) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
    }
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
    }

}
public class Main {

    public static void main(String[] args) throws IOException, ClassNotFoundException {
        Student stu1 = new Student("0001", "abc", 20);
        Student stu2 = new Student("0002", "bcd", 20);
        Student[] students = new Student[]{stu1, stu2};

        ObjectOutputStream oos= new ObjectOutputStream(new FileOutputStream("stu.dat"));//输出流写进去:写出对象
        ObjectInputStream ois= new ObjectInputStream(new FileInputStream("stu.dat"));//输入流读出来:读写对象数据

        oos.writeObject(students);//将学生对象数组写出去。需要将对象进行序列化!

        Object object = ois.readObject();

        if(object instanceof Student[]){
            Student[] stus = (Student[])object;//强制转换,还原数据
            for(Student stu:stus){
                System.out.println(stu);
            }
        }

        oos.close();
        ois.close();
    }

}
版权声明:正在学习中,有错误欢迎指出。感谢比❤❤~ https://blog.csdn.net/gx17864373822/article/details/79972205

ObjectOutputStream 和 ObjectInputStream的使用

一、看一下API文档 ObjectOutputStream : ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectIn...
  • sdksdk0
  • sdksdk0
  • 2016-04-13 16:34:08
  • 4069

ObjectOutputStream 和 ObjectInputStream类的简单介绍,及运用。

以前在文件中写入数据的主要方式是用字符流或者字节流。但是如果想保存并读取一个对象,该怎么办?可以是用ObjectOutputStream类 和 ObjectInputStream类。   Obje...
  • liuhenghui5201
  • liuhenghui5201
  • 2012-12-20 17:45:55
  • 6064

有关ObjectInputStream和ObjectOutputStream性能

首先给出一个可用的结果,java中ObjectInputStream和ObjectOutputStream网络读写对象速度比较慢。以下给出过程。今天专门测试了一下java中ObjectInputStr...
  • joshly
  • joshly
  • 2015-05-07 23:25:40
  • 1209

Java浅谈流之对象流ObjectInputStream和ObjectOutputStream

我们知道Java中对文件操作有6种流:              1 文件字节流:这是InputStream和OutputStream的子类 eg: FileInputStream  FileOut...
  • weiweiyixiaocsdn
  • weiweiyixiaocsdn
  • 2015-04-28 16:36:03
  • 7421

Socket网络编程中使用ObjectInputStream与ObjectOutputStream的注意事项

在Socket编程中,我们经常会使用ObjectInputStream与ObjectOutputStream来实现对象的传递。但是在使用ObjectInputStream与ObjectOutputSt...
  • tan270599153
  • tan270599153
  • 2015-03-30 21:34:09
  • 398

Java中ObjectInputStream 与 ObjectOutputStream的使用

ObjectInputStream能够让你从输入流中读取Java对象,而不需要每次读取一个字节。你可以把InputStream包装到ObjectInputStream中,然后就可以从中读取对象了 O...
  • u010982856
  • u010982856
  • 2016-08-24 14:53:19
  • 1400

Java中ObjectOutputStream和ObjectInputStream的基本使用详解

在我们讲解对象输出流和对象输入流之前,我们首先要明确两个概念: - 序列化和反序列化: - 将一个特定的数据结构转换为一组字节的过程称之为序列化 - 将一组字节转换为特定的数据结构的...
  • lyb1832567496
  • lyb1832567496
  • 2016-10-05 11:48:03
  • 480

Java IO之对象的序列化、ObjectInputStream和ObjectOutputStream类

什么是IO流?  byte序列的读写,Java中的IO流是实现输入/输出的基础. Java将数据从源(文件、内存、键盘、网络)读入到内存 中,形成了流,然后将这些流还可以写到另外的目的地(文件、内存...
  • koozxcv
  • koozxcv
  • 2016-02-24 15:29:01
  • 2622

java基本I/O系列--ObjectInputStream 和 ObjectOutputStream 介绍

ObjectInputStream 和 ObjectOutputStream 的作用是,对基本数据和对象进行序列化操作支持。 创建“文件输出流”对应的ObjectOutputStream对象,该Ob...
  • lucas421634258
  • lucas421634258
  • 2015-08-31 10:12:55
  • 554

JDK 1.7 java.io 源码学习之ObjectInputStream和ObjectOutputStream

ObjectInputStream和ObjectOutputStream
  • Rickesy
  • Rickesy
  • 2017-02-24 11:40:34
  • 623
收藏助手
不良信息举报
您举报文章:ObjectInputStream和ObjectOutputStream
举报原因:
原因补充:

(最多只允许输入30个字)