模型类:
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编程中,序列化是一种将对象转换为可存储或传输格式的过程,通常用于数据库存储、文件保存或者网络传输。这个过程将对象的状态(包括它的属性和方法)转化为字符串,以便于之后的反序列化,即恢复原始对象。在...
例如,序列化一个.NET的`DateTime`对象到JSON字符串时,你可能会得到一个形如“/Date(700000+0500)/”的字符串,这表示时间戳以及时区信息。反序列化时,你需要将这个字符串转换回`DateTime`对象,这通常需要自定义...
要序列化一个Java对象,我们可以创建一个`ObjectMapper`实例,然后调用`writeValueAsString()`方法: ```java ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writeValueAsString...
要序列化一个`HashTable`对象,我们需要执行以下步骤: 1. 确保`HashTable`类或包含它的类实现了`Serializable`接口。例如: ```java public class MyHashTable implements Serializable { private Hashtable, ...
当你想要序列化一个对象时,你需要创建一个`BinaryFormatter`实例,然后使用它的`Serialize`方法,传入一个`Stream`对象,通常是`FileStream`。反序列化时,同样使用`BinaryFormatter`的`Deserialize`方法,从已序列...
当你序列化一个对象时,Java会把该对象的所有属性(包括其引用的对象)都转换成字节流,以便于存储或者在网络上传输。 在代码中,你可以使用`ObjectOutputStream`来序列化对象。例如: ```java import java.io.*; ...
例如,你可以序列化一个包含`std::vector`,`std::map`,或者其他STL容器的类实例。 Boost.Serialization提供了两种主要的序列化方式:文本序列化和二进制序列化。文本序列化通常更易于阅读和调试,但占用的存储...
例如,要序列化一个名为`Person`的对象,可以这样做: ```csharp [Serializable] public class Person { public string Name { get; set; } public int Age { get; set; } } // 二进制序列化 using (var stream ...
要序列化一个对象,你需要创建一个`XmlSerializer`实例,指定要序列化的类型,然后调用`Serialize`方法,将对象写入一个文本流或文件。反序列化则通过调用`Deserialize`方法,从XML文本流或文件中恢复对象。 2. **...
要序列化一个对象,可以使用`ObjectOutputStream`,反序列化则使用`ObjectInputStream`。虽然简单易用,但效率较低,且序列化的元数据(如类名、字段名)会被包含在字节流中,存在安全风险(如反序列化攻击)。 2. ...
要序列化一个对象到文件流,首先需要创建一个TFileStream对象,然后使用对象的Write方法将数据写入流。反序列化时,从流中读取数据并恢复对象状态。 以下是使用Delphi进行文件流序列化的步骤: 1. **创建...
相反,要反序列化一个对象,可以使用`ObjectInputStream`从输入流中读取对象。以下是一个反序列化的示例: ```java import java.io.FileInputStream; import java.io.ObjectInputStream; public class ...
为了序列化一个BaseObject实例,我们需要定义一个方法,遍历对象的所有属性,并将它们转化为JSON键值对。反序列化时,我们读取JSON字符串,解析成一个SO对象,然后遍历其属性,赋值给BaseObject的相应字段。 2. ** ...
3. `java.io.NotSerializableException`: 当尝试序列化一个未实现Serializable接口的对象时抛出的异常。 4. `sun.misc.BASE64Encoder`和`sun.misc.BASE64Decoder`(非标准API):用于将字节数组编码为Base64字符串,...
2. **使用`ObjectOutputStream.writeUnshared()`**:此方法序列化一个对象,但不会写入其类描述信息,适合序列化多个对象到同一文件,避免覆盖前面的类描述信息。不过,这种方法需要配合`ObjectInputStream....
序列化一个`Team`对象会生成一个包含多个`Person`元素的XML文档,而反序列化则会恢复整个团队的结构。 使用XStream的一个主要优点是其对类型安全性的支持。由于XStream使用Java类型信息来构建XML,因此在反序列化时...
序列化一个对象可以使用`ObjectOutputStream`类的`writeObject()`方法: ```java MyClass obj = new MyClass(); ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("file.ser")); oos....
例如,当你序列化一个矩形时,你需要写出它的左上角和右下角坐标,以及填充色和边框色等信息。反序列化时,则读取这些数据并根据它们重新创建矩形。 为了支持多种图形,`CGraph`可能需要包含一个图形容器,用于存储...
为了序列化一个对象,我们需要定义一个类并标记它为可序列化,使用`[Serializable]`特性。例如: ```csharp [Serializable] public class Person { public string Name { get; set; } public int Age { get; set;...
要序列化一个对象,该对象必须遵循 `NSCoding` 协议。该协议定义了两个必须实现的方法:`encodeWithCoder:` 和 `initWithCoder:`。前者用于编码对象,后者用于解码。 ```swift class CustomObject: NSObject, ...