对象序列化会用到java.io.Serializable包中的ObjectInputStream和ObjectOutputStream,对象序列化即吧对象转化为字符串存入内存或文件中,反序列化即读取文件再形成对象。
package serial;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
//java默认的序列化将一切关于对象的信息都保存下来,一般仅需要保存逻辑数据,不需要保存的用transient标出即可
public class SerialObject {
public static void main(String[] args) {
SerialObject so = new SerialObject();
File file = new File("c:\\object.txt");
try { //序列化
so.writeObjectToFile(file);
} catch (IOException e) {
e.printStackTrace();
}
try { //反序列化
so.readObjectFromFile(file);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public void writeObjectToFile(File file) throws IOException{ //序列化对象到文件中
FileOutputStream fo = new FileOutputStream(file);
ObjectOutputStream oo = new ObjectOutputStream(fo);
oo.writeObject(new Date());
oo.flush();
}
public void readObjectFromFile(File file) throws IOException, ClassNotFoundException{
FileInputStream fi = new FileInputStream(file);
ObjectInputStream oi = new ObjectInputStream(fi);
Date d = (Date) oi.readObject();
DateFormat df = SimpleDateFormat.getInstance();
System.out.println(df.format(d));
}
}
执行程序后会生成object.txt文件,文件的内容有点乱码,即序列化对象后的字符串。
分享到:
相关推荐
5. 对象序列化:`SerializationUtils` 提供了序列化和反序列化对象的实用方法,简化了对象的持久化过程。 6. 文件比较:`FileComparison` 类可以帮助比较两个文件或目录是否相同,对于版本控制或备份很有用。 7. 二...
在这个项目中,我们可以期待找到不同类型的I/O操作示例,例如读写文件、流的使用、缓冲区技术、转换流、对象序列化等。 1. **基础I/O流**:Java I/O系统基于流的概念,流是数据的有序序列。有两类基本的流:字节流...
Java对象的序列化和反序列化是Java编程中一项重要的技术,主要用于将对象的状态转换为字节流,以便存储或在网络上传输。这一过程对于理解Java的IO操作、持久化数据以及实现分布式通信等场景非常关键。 首先,我们来...
对象流则允许序列化和反序列化Java对象,而套接字流用于网络通信。 IO流又分为输入流(InputStream/Reader)和输出流(OutputStream/Writer),它们分别用于数据的读取和写入。Java标准库提供了许多预定义的流类,...
六、对象序列化流(Object Stream) Java还提供了一种特殊的流,即对象流,用于对象的序列化和反序列化。`ObjectOutputStream`用于写入对象到流中,`ObjectInputStream`则用于从流中读取对象。 七、文件操作练习 在...
- **1.1 什么是流**:流是一种连续的数据序列,Java中的流可以是输入流或输出流。 - **1.2 数字数据处理**:Java提供了多种处理数字数据的方法,包括`int`、`float`等类型的读写操作。 - **1.3 字符数据处理**:通过...
Java对象序列化与反序列化是Java编程中重要的概念,主要应用于数据持久化、网络传输以及存储等场景。本文将详细解析这两个概念及其在实际应用中的实现方式。 **一、Java对象序列化** 1. **定义**: Java对象序列化...
"commons-io-2.6-bin.zip" 提供了Apache Commons IO库的2.6版本,这是一个由Apache软件基金会开发的Java库,包含了大量实用的类和方法,用于简化和增强Java标准库中的IO操作。这个库提供了大量的静态方法,用于处理...
Java中对象的序列化通常通过`Serializable`接口实现。实现此接口的对象可以通过`ObjectOutputStream`类将其状态保存到一个输出流中,也可以通过`ObjectInputStream`从输入流中恢复其状态。 ### Java内存映射文件 ...
10. **对象序列化与反序列化**: - `ObjectInputStream` 和 `ObjectOutputStream` 的使用,允许对象的序列化到文件,以便于存储或传输,而 `deserialize()` 和 `serialize()` 方法提供了一种简单的接口来实现这一...
- 使用 `java.io.ObjectOutputStream` 类的 `writeObject()` 方法将对象写入到输出流,从而实现序列化。 - 使用 `java.io.ObjectInputStream` 类的 `readObject()` 方法从输入流读取对象,实现反序列化。 4. **...
9. **对象序列化和反序列化**:`SerializationUtils` 类提供对象的序列化和反序列化功能,可以将对象保存到文件或流中,然后在需要时恢复。 10. **临时文件**:`TemporaryFileCreator` 类允许创建临时文件或目录,...
Java对象序列化是一种将对象转换为字节流的过程,以便可以将其存储在磁盘上,或者在网络中进行传输。这是Java平台提供的一种功能,允许程序员将任何Java对象持久化,即将其状态保存到磁盘,或者在网络中进行传输。...
Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。 一、Java控制台输入 Java 的控制台输入...
Java对象序列化是Java平台的一项重要特性,它允许将对象的状态转换为字节流,以便存储、传输或恢复。在本文中,我们将深入探讨关于Java对象序列化你可能不知道的五件事情,这些知识点对于理解和优化你的Java应用程序...
一、Java对象序列化与反序列化 1. **序列化**: 序列化是将Java对象转换为字节流的过程,以便于存储或传输。通过实现`java.io.Serializable`接口,一个Java对象可以获得序列化的能力。序列化不仅可以保存对象的状态...
8. **对象序列化**:SerializationUtils类提供了序列化和反序列化对象的方法,便于保存和恢复对象状态。 9. **异常处理**:Commons IO提供了许多特定于I/O操作的异常,如InvalidFileNameException、...
而在Java中,我们可以通过实现`Serializable`接口来使类支持序列化,或者使用`java.io.ObjectOutputStream`和`java.io.ObjectInputStream`进行对象的序列化和反序列化。 接下来,我们讨论反序列化。反序列化是序列...