`

java io操作----对象序列化

阅读更多
对象序列化会用到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文件,文件的内容有点乱码,即序列化对象后的字符串。
分享到:
评论
3 楼 hnzhoujunmei 2011-05-27  
不用解决方法,序列化后,就是乱码啊,只要再次读取时,可以形成最初的对象就行了,不需要我们读懂序列化后的东西,程序会自动读取的。
2 楼 liuyuantp 2011-05-27  
怎么没有人说 说解决方法啊?
1 楼 liuyuantp 2011-05-27  
我的也是乱码。

相关推荐

    Java IO commons-io-2.5.jar

    5. 对象序列化:`SerializationUtils` 提供了序列化和反序列化对象的实用方法,简化了对象的持久化过程。 6. 文件比较:`FileComparison` 类可以帮助比较两个文件或目录是否相同,对于版本控制或备份很有用。 7. 二...

    JavaIODemo-master.zip

    在这个项目中,我们可以期待找到不同类型的I/O操作示例,例如读写文件、流的使用、缓冲区技术、转换流、对象序列化等。 1. **基础I/O流**:Java I/O系统基于流的概念,流是数据的有序序列。有两类基本的流:字节流...

    java 对象的序列化与反序列化

    Java对象的序列化和反序列化是Java编程中一项重要的技术,主要用于将对象的状态转换为字节流,以便存储或在网络上传输。这一过程对于理解Java的IO操作、持久化数据以及实现分布式通信等场景非常关键。 首先,我们来...

    commons-io-1.4.jar.zip_io流jar

    对象流则允许序列化和反序列化Java对象,而套接字流用于网络通信。 IO流又分为输入流(InputStream/Reader)和输出流(OutputStream/Writer),它们分别用于数据的读取和写入。Java标准库提供了许多预定义的流类,...

    Java-Io流,练习

    六、对象序列化流(Object Stream) Java还提供了一种特殊的流,即对象流,用于对象的序列化和反序列化。`ObjectOutputStream`用于写入对象到流中,`ObjectInputStream`则用于从流中读取对象。 七、文件操作练习 在...

    java io流-3.pdf

    - **1.1 什么是流**:流是一种连续的数据序列,Java中的流可以是输入流或输出流。 - **1.2 数字数据处理**:Java提供了多种处理数字数据的方法,包括`int`、`float`等类型的读写操作。 - **1.3 字符数据处理**:通过...

    java对象序列化和反序列化

    Java对象序列化与反序列化是Java编程中重要的概念,主要应用于数据持久化、网络传输以及存储等场景。本文将详细解析这两个概念及其在实际应用中的实现方式。 **一、Java对象序列化** 1. **定义**: Java对象序列化...

    commons-io-2.6-bin.zip

    "commons-io-2.6-bin.zip" 提供了Apache Commons IO库的2.6版本,这是一个由Apache软件基金会开发的Java库,包含了大量实用的类和方法,用于简化和增强Java标准库中的IO操作。这个库提供了大量的静态方法,用于处理...

    java全栈工程师-java io

    Java中对象的序列化通常通过`Serializable`接口实现。实现此接口的对象可以通过`ObjectOutputStream`类将其状态保存到一个输出流中,也可以通过`ObjectInputStream`从输入流中恢复其状态。 ### Java内存映射文件 ...

    commons-io-2.6.jar下载

    10. **对象序列化与反序列化**: - `ObjectInputStream` 和 `ObjectOutputStream` 的使用,允许对象的序列化到文件,以便于存储或传输,而 `deserialize()` 和 `serialize()` 方法提供了一种简单的接口来实现这一...

    Java序列化

    - 使用 `java.io.ObjectOutputStream` 类的 `writeObject()` 方法将对象写入到输出流,从而实现序列化。 - 使用 `java.io.ObjectInputStream` 类的 `readObject()` 方法从输入流读取对象,实现反序列化。 4. **...

    commons-io-2.6-bin.rar

    9. **对象序列化和反序列化**:`SerializationUtils` 类提供对象的序列化和反序列化功能,可以将对象保存到文件或流中,然后在需要时恢复。 10. **临时文件**:`TemporaryFileCreator` 类允许创建临时文件或目录,...

    java对象序列化.ppt

    Java对象序列化是一种将对象转换为字节流的过程,以便可以将其存储在磁盘上,或者在网络中进行传输。这是Java平台提供的一种功能,允许程序员将任何Java对象持久化,即将其状态保存到磁盘,或者在网络中进行传输。...

    Java文件io-stream-file教程

    Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。 一、Java控制台输入 Java 的控制台输入...

    关于 Java 对象序列化您不知道的 5 件事

    Java对象序列化是Java平台的一项重要特性,它允许将对象的状态转换为字节流,以便存储、传输或恢复。在本文中,我们将深入探讨关于Java对象序列化你可能不知道的五件事情,这些知识点对于理解和优化你的Java应用程序...

    Android-Android上的Java对象反序列化

    一、Java对象序列化与反序列化 1. **序列化**: 序列化是将Java对象转换为字节流的过程,以便于存储或传输。通过实现`java.io.Serializable`接口,一个Java对象可以获得序列化的能力。序列化不仅可以保存对象的状态...

    commons-io-2.4 包含了所有commons-io的jar包和源码

    8. **对象序列化**:SerializationUtils类提供了序列化和反序列化对象的方法,便于保存和恢复对象状态。 9. **异常处理**:Commons IO提供了许多特定于I/O操作的异常,如InvalidFileNameException、...

    C#和Java的序列化反序列化

    而在Java中,我们可以通过实现`Serializable`接口来使类支持序列化,或者使用`java.io.ObjectOutputStream`和`java.io.ObjectInputStream`进行对象的序列化和反序列化。 接下来,我们讨论反序列化。反序列化是序列...

Global site tag (gtag.js) - Google Analytics