Java核心类库-IO-对象流(实现序列化与反序列化)

使用对象流来完成序列化和反序列化操作:

  ObjectOutputStream:通过writeObject()方法做序列化操作的

  ObjectInputStream:通过readObject方法来做反序列化操作的

做序列化操作必须存在对象的字节码对象。

 1 public class ObjectStreamDemo {
 2     public static void main(String[] args) throws Exception {
 3
 4         File file = new File("obj.txt");
 5         //writeObject(file);
 6         readObject(file);
 7     }
 8
 9     private static void readObject(File file) throws Exception {
10         ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
11         User user = (User) in.readObject();
12         System.out.println(user.getName());
13         in.close();
14     }
15
16     private static void writeObject(File file) throws Exception {
17         ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
18         out.writeObject(new User("wxd","123",21));
19         out.close();
20     }
21 }
时间: 2024-10-21 13:15:02

Java核心类库-IO-对象流(实现序列化与反序列化)的相关文章

java学习之IO对象流

//注意对象类要打标记实现Serializable接口 1 package com.gh; 2 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.io.ObjectInputStrea

Java核心类库-IO-包装流概述和缓冲流原理

处理流/包装流(相对于节点流更高级): 1. 隐藏了底层的节点流的差异,并对外提供了更方便的输入/输出功能,让我们之关心高级流操作. 2. 使用处理包装流包装了节点流程序直接操作处理流,让节点流与底层的设备做IO操作. 3. 只需要关闭处理流即可 包装流如何分区:写代码的时候,发现创建对象的时候,需要传递另一个流对象.new 包装流(流对象): 什么是缓冲流: 是一个包装流,目的起缓存作用. BufferedInputStream: BufferedOutputStream: BufferedR

Java核心类库-IO-转换流(InputStreamReader-OutputStreamWriter)

转换流:把字节流转换成字符输入流 InputStreamReader:把字节输入流转成字符输入流 OutputStreamWriter:把字节输出流转换成字符输出流 为什么有字节转字符流,没有字符转字节流 字节流可以操作一切文件(纯文本文件/二进制文件) 字符流是用来操作中文纯文本使用的,本身是对自己的增强.

Java核心类库-IO-打印流(PrintStream/PrintWriter)

打印流,打印数据的,打印流只能是输出流: PrintStream:字节打印流. PrintWriter:字符打印流. 对于PrintWriter来说,当启用字段刷新之后 PrintWriter ps = new PrintWriter(new FileOutputStream(new File("out")),true); 调用println或者printf或者format方法,便会立马刷新操作 如果没有开启自动刷新,则需要手动刷新或者当缓冲区满的时候,再自动刷新. 使用打印流作为输出

Java核心类库-IO-文件流概述和系统属性

文件流概述和系统属性 文件流(纯文本文件):程序和文件打交道. 在字节流中不要使用中文 FileInputStream:文件的字节输入流. FileOutputStream:文件的字节输出流. FileReader:文件的字符输出流. FileWriter:文件的字符输出流. FileOutputStream: FileInputStream:

动车上的书摘-java对象流与序列化

动车上的书摘-java对象流与序列化 摘要: 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 钢笔不限贵便宜,书法是来自心对手的交流.-泥沙砖瓦浆木匠 一.对象序列化 当需要存储相同类型的数据,选择固定的长度记录是好选择.但是在面向对象(OOP)程序中,对象之间很少有全部相同的类型.所以,java语言支持一种称为对象序列化(object serialization)的机制. 下面展示一个序列化例子,关于两个对象 Em

[疯狂Java]I/O:I/O流的最高境界——对象流(序列化:手动序列化、自动序列化、引用序列化、版本)

1. 什么是对象流:序列化/反序列化的概念 1) 对象流是和字节流/字符流同处于一个概念体系的: a. 这么说字节流是流动的字节序列,字符流是流动的字符序列,那么对象流就是流动的对象序列咯? b. 概念上确实可以这样理解,对象流就是专门用来传输Java对象的: c. 但是字节和字符都是非常直观的二进制码(字节本身就是,而字符是一种二进制编码),二进制码的流动是符合计算机的概念模型的,可是对象是一个抽象的东西,对象怎么能像二进制码那样流动呢? d. 其实很好理解,对象流只不过是Java的API而已

Java基础IO类之对象流与序列化

对象流的两个类: ObjectOutputStream:将Java对象的基本数据类型和图形写入OutputStream ObjectInputStream:对以前使用ObjectOutputStream写入的基本数据和对象进行反序列化 序列化一组对象: 在系列化操作中,同时序列化多个对象时,反序列化也必须按顺序操作,如果想要序列化一组对象该如何操作呢? 序列化一组对象可采用,对象数组的形式,因为对象数组可以向Object进行转型操作. 把对象序列化到文件当中,然而文件中存的是字节.我们对象里面相

java 21 - 13 IO流之序列化和反序列化

序列化流:把对象按照流一样的方式存入文本文件或者在网络中传输.对象 -- 流数据(ObjectOutputStream) 构造方法:ObjectInputStream(InputStream in)  创建从指定 InputStream 读取的 ObjectInputStream 反序列化流:把文本文件中的流对象数据或者网络中的流对象数据还原成对象.流数据 -- 对象(ObjectInputStream) 构造方法:ObjectInputStream(InputStream in)  创建从指定