`
wlh269
  • 浏览: 458075 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

序列化(一)

    博客分类:
  • J2SE
阅读更多
模型类:
package com.wlh;

import java.io.Serializable;

public class Worker implements Serializable {

	private String name;
	private String sex;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
}


序列化&反序列化 测试类:
package com.wlh;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import com.wlh.Worker;

import junit.framework.TestCase;

public class ObjectSerializableTest extends TestCase {

	private static String fileName="./worker.dat";
	/**
	 * 序列化
	 */
	public void testSerializable1(){
		Worker worker=new Worker();
		worker.setAge(26);
		worker.setName("wlh");
		worker.setSex("man");
		try {
			File file=new File(fileName);
			if(!file.exists()){
				file.createNewFile();
			}
			FileOutputStream fos=new FileOutputStream(file);
			ObjectOutputStream oops=new ObjectOutputStream(fos);
			oops.writeObject(worker);//序列化方法writeObject()
				
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	/**
	 * 反序列化
	 */
	public void TestUnSerializable(){
		try {
			FileInputStream fis=new FileInputStream(fileName);
			ObjectInputStream ois=new ObjectInputStream(fis);
			Worker newWoker=(Worker) ois.readObject();
			System.out.println("age="+newWoker.getAge());
			System.out.println("name="+newWoker.getName());
			System.out.println("sex="+newWoker.getSex());
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
}

分享到:
评论

相关推荐

    序列化一个类_php的类的序列化脚本_

    在PHP编程中,序列化是一种将对象转换为可存储或传输格式的过程,通常用于数据库存储、文件保存或者网络传输。这个过程将对象的状态(包括它的属性和方法)转化为字符串,以便于之后的反序列化,即恢复原始对象。在...

    ASPNET中JSON的序列化和反序列化的方法

    例如,序列化一个.NET的`DateTime`对象到JSON字符串时,你可能会得到一个形如“/Date(700000+0500)/”的字符串,这表示时间戳以及时区信息。反序列化时,你需要将这个字符串转换回`DateTime`对象,这通常需要自定义...

    基于boost的序列化与反序列化

    例如,你可以序列化一个包含`std::vector`,`std::map`,或者其他STL容器的类实例。 Boost.Serialization提供了两种主要的序列化方式:文本序列化和二进制序列化。文本序列化通常更易于阅读和调试,但占用的存储...

    序列化与反序列化

    要序列化一个Java对象,我们可以创建一个`ObjectMapper`实例,然后调用`writeValueAsString()`方法: ```java ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writeValueAsString...

    hashtable序列化与反序列化

    要序列化一个`HashTable`对象,我们需要执行以下步骤: 1. 确保`HashTable`类或包含它的类实现了`Serializable`接口。例如: ```java public class MyHashTable implements Serializable { private Hashtable, ...

    《C#序列化和反序列化之一-二进制序列化》源代码

    当你想要序列化一个对象时,你需要创建一个`BinaryFormatter`实例,然后使用它的`Serialize`方法,传入一个`Stream`对象,通常是`FileStream`。反序列化时,同样使用`BinaryFormatter`的`Deserialize`方法,从已序列...

    自己写的一个序列化和反序列化的例子

    当你序列化一个对象时,Java会把该对象的所有属性(包括其引用的对象)都转换成字节流,以便于存储或者在网络上传输。 在代码中,你可以使用`ObjectOutputStream`来序列化对象。例如: ```java import java.io.*; ...

    二进制序列化和XML序列化

    例如,要序列化一个名为`Person`的对象,可以这样做: ```csharp [Serializable] public class Person { public string Name { get; set; } public int Age { get; set; } } // 二进制序列化 using (var stream ...

    XmlDemoTranfer Xml序列化与反序列化

    要序列化一个对象,你需要创建一个`XmlSerializer`实例,指定要序列化的类型,然后调用`Serialize`方法,将对象写入一个文本流或文件。反序列化则通过调用`Deserialize`方法,从XML文本流或文件中恢复对象。 2. **...

    java 常用序列化和反序列化框架使用demo

    要序列化一个对象,可以使用`ObjectOutputStream`,反序列化则使用`ObjectInputStream`。虽然简单易用,但效率较低,且序列化的元数据(如类名、字段名)会被包含在字节流中,存在安全风险(如反序列化攻击)。 2. ...

    文件流序列化

    要序列化一个对象到文件流,首先需要创建一个TFileStream对象,然后使用对象的Write方法将数据写入流。反序列化时,从流中读取数据并恢复对象状态。 以下是使用Delphi进行文件流序列化的步骤: 1. **创建...

    java中的序列化与反序列化

    相反,要反序列化一个对象,可以使用`ObjectInputStream`从输入流中读取对象。以下是一个反序列化的示例: ```java import java.io.FileInputStream; import java.io.ObjectInputStream; public class ...

    delphi_BaseObject_json序列化反序列化1

    为了序列化一个BaseObject实例,我们需要定义一个方法,遍历对象的所有属性,并将它们转化为JSON键值对。反序列化时,我们读取JSON字符串,解析成一个SO对象,然后遍历其属性,赋值给BaseObject的相应字段。 2. ** ...

    java自动序列化

    3. `java.io.NotSerializableException`: 当尝试序列化一个未实现Serializable接口的对象时抛出的异常。 4. `sun.misc.BASE64Encoder`和`sun.misc.BASE64Decoder`(非标准API):用于将字节数组编码为Base64字符串,...

    Java 多次序列化对象到同壹個文件及反序列化的问题

    2. **使用`ObjectOutputStream.writeUnshared()`**:此方法序列化一个对象,但不会写入其类描述信息,适合序列化多个对象到同一文件,避免覆盖前面的类描述信息。不过,这种方法需要配合`ObjectInputStream....

    使用XStream序列化/反序列化对象

    序列化一个`Team`对象会生成一个包含多个`Person`元素的XML文档,而反序列化则会恢复整个团队的结构。 使用XStream的一个主要优点是其对类型安全性的支持。由于XStream使用Java类型信息来构建XML,因此在反序列化时...

    java 对象序列化

    序列化一个对象可以使用`ObjectOutputStream`类的`writeObject()`方法: ```java MyClass obj = new MyClass(); ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("file.ser")); oos....

    图形的序列化MFC源代码

    例如,当你序列化一个矩形时,你需要写出它的左上角和右下角坐标,以及填充色和边框色等信息。反序列化时,则读取这些数据并根据它们重新创建矩形。 为了支持多种图形,`CGraph`可能需要包含一个图形容器,用于存储...

    基于C#+XML实现的对象序列化与反序列化的程序例子代码

    为了序列化一个对象,我们需要定义一个类并标记它为可序列化,使用`[Serializable]`特性。例如: ```csharp [Serializable] public class Person { public string Name { get; set; } public int Age { get; set;...

    iOS归档(序列化与反序列化)

    要序列化一个对象,该对象必须遵循 `NSCoding` 协议。该协议定义了两个必须实现的方法:`encodeWithCoder:` 和 `initWithCoder:`。前者用于编码对象,后者用于解码。 ```swift class CustomObject: NSObject, ...

Global site tag (gtag.js) - Google Analytics