`

[java][io][Serialize]对象序列化

阅读更多


import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**
 * 
 * 对象序列化与反序列化.
 * 反序列化时未调用任何构造.
 * 反序列化时必须让JVM可以找到被返序列化的对象的class文件,否则ClassNotFoundException
 *
 */
public class SerialDemo {

	public static void main(String[] args) throws Exception {
		final String file = "d:\\demo.txt";
		Demo demo = new Demo(5);
		serialize(demo, file);
		deserialize(file);

	}
	//序列化
	static void serialize(Object obj, String filePath) throws Exception{
		FileOutputStream file = new FileOutputStream(filePath);
		ObjectOutputStream out = new ObjectOutputStream(file);
		out.writeObject(obj);
		out.close();
		System.out.println("serialize end.");
	}
	//反序列化
	static void deserialize(String filePath) throws Exception{
		FileInputStream file = new FileInputStream(filePath);
		ObjectInputStream in = new ObjectInputStream(file);
		Object obj = in.readObject();
		in.close();
		System.out.println(obj.toString());
	}
	
	static class Demo implements Serializable{

		private static final long serialVersionUID = -3161633102764071778L;
		
		private int count;
		
		public Demo(int n){
			System.out.println("demo construct(n)");
			count = n;
		}
		
		public String toString(){
			return Integer.toString(count);
		}
	}

}

/*
demo construct(n)
serialize end.
5
*/
分享到:
评论

相关推荐

    C#对象序列化与反序列化

    XML序列化对象详解 - **说明**:XML序列化提供了一系列的特性来控制序列化的过程。 - **`[XmlElement]`**:默认情况下,使用此特性表示该成员将作为XML元素序列化。 - **`[XmlAttribute]`**:表示该成员将作为XML...

    Java序列化对象工具类 Eclipse工程(SerializUtil.zip)

    在Java中,如果一个对象需要支持序列化,那么它的类必须实现`java.io.Serializable`接口。在`SerializUtil.zip`这个Eclipse工程中,包含了一个名为`SerializUtil`的工具类,用于简化Java对象的序列化和反序列化操作...

    序列化、反序列化图文例子

    序列化和反序列化是计算机科学中的重要概念,特别是在数据存储、网络通信和持久化对象等领域。简单来说,序列化是将对象的状态转换为可存储或传输的数据格式,而反序列化则是将这些数据恢复为原来的对象状态。在这个...

    对象序列化和反序列化是怎么回事

    在Java中,实现对象序列化可以很简单,只需要让类实现`java.io.Serializable`接口即可。例如: ```java public class MySerializableObject implements Serializable { private String name; private int age; ...

    对象序列化成XMLDemo

    在Android中,对象序列化到XML通常涉及到`XmlSerializer`类,这是`java.io.IOException`的子类,提供了一种将Java对象写入XML输出流的方法。这个过程包括以下几个步骤: 1. **创建XMLSerializer实例**:首先,你...

    如何正确的使用Java序列化技术

    “指纹”技术通常是指用于验证序列化对象完整性的机制。通过计算序列化后的字节流的哈希值,可以确保对象在序列化和反序列化过程中的完整性。这对于安全性要求较高的应用场景尤为重要。 ### 结论 Java序列化技术...

    Jedis序列化和反序列化使用jar

    在使用Jedis存储Java对象到Redis时,通常会先序列化对象,将其转化为二进制流,然后存储为Redis的String类型;当从Redis读取数据时,则进行反序列化,将二进制流还原为原来的对象。 Jedis库提供了丰富的API用于与...

    Java序列化(Serializable)与反序列化__1.docx

    1. Object Serialize:Java内置的序列化机制,通过实现`Serializable`接口来实现对象的序列化。在进行反序列化时,Java会验证`serialVersionUID`,确保对象在序列化和反序列化之间的一致性。 2. JSON:通过将对象...

    序列化与反序列化经典例子

    在Java中,可以使用`java.io.Serializable`接口标记一个类使其支持序列化,然后使用`ObjectOutputStream`来执行序列化操作。 接着,我们讨论反序列化。这是序列化的逆过程,它从字节流中重建对象实例。在Java中,...

    Unity 中使用Protobuf进行序列化和反序列化的Demo

    序列化是将对象的状态转换为可以存储或传输的数据格式的过程,而反序列化则是将这些数据恢复为原来的对象状态。在Unity中,这通常用于保存游戏进度、网络通信或者在不同系统间交换数据。 Protobuf的优点包括: 1. *...

    序列化性能测试JAVA

    Java中的序列化是通过实现`java.io.Serializable`接口来标记一个类可以被序列化。当一个对象被序列化时,它的状态(包括字段值)会被写入到输出流中;反序列化则相反,从输入流中读取这些数据并创建对象的副本。这个...

    S25-hessian反序列化1

    在Java中,通常只有实现了`java.io.Serializable`接口的类才能被序列化。然而,描述中提到,即使类如`javax.naming.spi.ContinuationDirContext`没有实现`Serializable`接口,Hessian仍然能够对其进行序列化,这是...

    序列化方法,很有用资源

    在Java中,内置了`java.io.Serializable`接口,任何实现了这个接口的类的对象都可以被序列化。使用`ObjectOutputStream`进行序列化,`ObjectInputStream`进行反序列化。Python有pickle库,C#有BinaryFormatter,...

    序列化代码

    常见的序列化技术包括Java的`java.io.Serializable`接口,.NET框架的`System.Runtime.Serialization.Formatters.Binary.BinaryFormatter`类,JSON序列化如`jsonpickle`(Python)、`Gson`(Java)或`Newtonsoft.Json...

    二进制序列化

    // 序列化对象到文件 using (FileStream stream = new FileStream("serialized.bin", FileMode.Create)) { formatter.Serialize(stream, obj); } // 反序列化文件回对象 using (FileStream stream = new ...

    Java原生序列化和反序列化代码实例

    总的来说,Java原生序列化和反序列化是Java开发中常用的技术,用于持久化对象状态和在网络间传输对象。通过实现`Serializable`接口并在需要的地方调用`ObjectOutputStream`和`ObjectInputStream`的相关方法,我们...

    PersonInfo[XML序列化]

    XML序列化是.NET框架中的一项重要技术,它允许我们将对象的状态转换为XML格式的字符串,以便存储或传输。在C#编程中,XML序列化是一个非常实用的功能,尤其是在数据交换、配置文件保存或者网络通信中。`PersonInfo...

    基于java的存储与读取对象.zip

    在Java编程语言中,对象的存储与读取是常见的任务,尤其在持久化数据、序列化和网络传输等场景中。本教程将深入探讨如何在Java中实现对象的存储和读取,主要涉及以下几个关键知识点: 1. **对象序列化...

    Java,C#使用二进制序列化、反序列化操作数据

    在Java中,序列化是通过实现`java.io.Serializable`接口来完成的。任何实现了这个接口的类的对象都可以被序列化。以下是一个简单的序列化和反序列化的示例: ```java import java.io.*; class MyClass implements ...

    4.Xml序列化器

    - Java:Java提供了`java.io.Serializable`接口,通过`javax.xml.bind.JAXB`库实现XML序列化。 - C#:C#的`.NET Framework`提供了`System.Xml.Serialization`命名空间,包含`XmlSerializer`类。 - Python:Python...

Global site tag (gtag.js) - Google Analytics