java中 使用输入+输出流对对象序列化

对象: 注意记得实现 Serializable

package com.nf147.sim.entity;

import java.io.Serializable;

public class News implements Serializable {
    private int id;
    private String title;
    private String body;

    public News() {
    }

    public News(int id, String title, String body) {
        this.id = id;
        this.title = title;
        this.body = body;
    }

    public News(String title, String body) {
        this.title = title;
        this.body = body;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    @Override
    public String toString() {
        return "News{" +
                "id=" + id +
                ", title=‘" + title + ‘\‘‘ +
                ", body=‘" + body + ‘\‘‘ +
                ‘}‘;
    }
}

@Testpublic void serialize() throws IOException {  //对象序列化    List<News> list = Arrays.asList(            new News("yuandn", "放假了"),            new News("春节", "快来了")    );    FileOutputStream fileOutputStream = new FileOutputStream(new File("e:/news.class"));    ObjectOutputStream stream = new ObjectOutputStream(fileOutputStream);    stream.writeObject(list);    System.out.println("文件输出完成");    stream.close();}

@Testpublic void deserialization() throws IOException, ClassNotFoundException { //对象反序列号    FileInputStream fileInputStream = new FileInputStream(new File("e:/news.class"));    ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);    Object o = objectInputStream.readObject();    System.out.println(o);    System.out.println("文件输入完成");    objectInputStream.close();}
 

结果:

原文地址:https://www.cnblogs.com/nongzihong/p/10189418.html

时间: 2024-11-15 00:22:31

java中 使用输入+输出流对对象序列化的相关文章

Java中的输入输出流

FileInputStream和FileOutputStream 创建含磁盘文件的输入 输出流对象. FileInputStream继承自InputStream,用于读取本地文件中的字节数据,由于所有的文件都是字节为导向,所以这个类适合于操作任何类型的文件. 构造方法: 实例:FileInputStream fileInputStream = new FileInputStream(new File("path")); 其他方法: read()方法:从输入流中读取最多b.length个

疯狂Java学习笔记(56)------------对象序列化

所谓对象序列化就是将对象的状态转换成字节流,以后可以通过这些值再生成相同状态的对象! 对象序列化是对象持久化的一种实现方法,它是将一个对象的属性和方法转化为一种序列化的格式以用于存储和传输,反序列化就是根据这些保存的信息重建对象的过程. java对象序列化机制一般来讲有两种用途: 1.需要将对象的状态保存到文件中(存储),而后能够通过读入对象状态来重新构造对象,恢复程序状态 2.使用套接字在网络上传送对象的程序来说,是很有用的(传输). 我们通过让类实现java.io.Serializable

Java标准流输入输出流In(Out)putStream,ReaderWriter等总结(1)

一,标准输出流System.out System.out向标准输出设备输出数据,方法有很多: print()和println()的主要区别是后者输出完了主动转行前者不转行,printf()主要是格式化输出 一,标准输入流System.in System.in读取标准输入设备数据(从标准输入获取数据,一般是键盘)int read() //返回ASCII码.若,返回值=-1,说明没有读取到任何字节读取工作结束. int read(byte[] b)//读入多个字节到缓冲区b中返回值是读入的字节数 p

Java和C#输入输出流方法

1,JAVA中操作方法: import java.io.*; public class FileInputStreamTest { public static void main(String[] args) throws IOException { //创建字节输入流 FileInputStream fis = new FileInputStream("FileInputStreamTest.java"); //创建一个长度为1024的竹筒 byte[] bbuf = new byt

Java中Comparable和Comparator实现对象比较

1.通过Comparable实现排序 package Comparable; import java.util.Arrays; public class ComparableUser implements Comparable<ComparableUser> { private String id; private int age; public ComparableUser(String id, int age) { this.id = id; this.age = age; } publi

(转)Java 中关于String的空对象(null) ,空值(empty),空格

原文出处:Java 中关于String的空对象(null) ,空值(empty),空格 定义 空对象: String s = null; 空对象是指定义一个对象s,但是没有给该对象分配空间,即没有实例化该对象,因此,空对象在调用所有对象方法时候都会抛出异常,如s.length(), s.isEmpty()等方法. 空值: String k = ""; 空值是指一个字符床对象已经实例化,即系统已经给该变量分配了空间,只是对象的内容为空. 空格: String n = " &qu

Java中的mutable和immutable对象实例讲解

1.mutable(可变)和immutable(不可变)类型的区别 可变类型的对象:提供了可以改变其内部数据值的操作,其内部的值可以被重新更改. 不可变数据类型:其内部的操作不会改变内部的值,一旦试图更改其内部值,将会构造一个新的对象而非对原来的值进行更改. 2.mutable和immutable类型的优缺点   mutable immutable 优点 可变类型会减少数据的拷贝次数,从而其效率 要高于immutable 由于内部数据不可变,所以对其频发修改会产生大量的临时拷贝,浪费空间 缺点

JAVA基础学习day22--IO流四-对象序列化、管道流、RandomAccessFile、DataStream、ByteArrayStream、转换流的字符编码

一.对象序列化 1.1.对象序列化 被操作的对象需要实现Serializable接口 1.2.对象序列化流ObjectOutputStream与ObjectInputStream ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化. ObjectOutputStream 和 ObjectInputStream 分别与 FileOutputStream 和 FileInputStream 一起使用时,可以为应用程序提供对对象图形的

Java I/O输入输出流详解

一.文件的编码               开发时一定要注意项目默认的编码!!!!!!!!               文件操作的时候一定要记得关闭!!!!!!!!        ASCII:美国标准信息交换码,用一个字节的7位可以表示一个字符        ISO8859-1:拉丁码表,西欧标准字符集,用一个字节的8位表示        GB2312:中文编码表,用两个字节来表示中文编码        GBK:中文编码表的升级,融合了更多表示中文文字符号        GB18030:GBK的