/*
下面的程序说明了怎样实现对象序列化和反序列化。它由实例化一个MyClass类的对象开始。该对象有三个实例变量,它们的类型分别是String,int和double。这是我们希望存储和恢复的信息。
FileOutputStream被创建,引用了一个名为“serial”的文件。为该文件流创建一个ObjectOutputStream。ObjectOutputStream 的writeObject( )方法用来序列化对象。对象的输出流被刷新和关闭。
然后,引用名为“serial”的文件创建一个FileInputStream类并为该文件创建一个ObjectInputStream类。ObjectInputStream 的readObject( )方法用来反序列化对象。然后对象输入流被关闭。
注意MyClass被定义成实现Serializable接口。如果不这样做,将会引发一个NotSerializableException异常。试图做一些把MyClass实例变量声明成transient的实验。那些数据在序列化过程中不被保存
*/
import java.io.*;class MyClass implements Serializable{ String s; int i; double d; public MyClass (String s,int i,double d){ this.s = s; this.i = i; this.d = d; } public String toString(){ return "s=" + s + "; i=" + i + "; d=" + d; }}class SerializationDemo{ public static void main(String[] args){ //Object serialization. try{ MyClass object1 = new MyClass("Evan",9,9.9e10); System.out.println("object1 : " +object1); FileOutputStream fos = new FileOutputStream("serial"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(object1); oos.flush(); oos.close(); }catch(Exception e){ System.out.println("Exception during serialization :" + e); System.exit(0); } //Object deserialization. try{ MyClass object2 ; FileInputStream fis = new FileInputStream("serial"); ObjectInputStream ois = new ObjectInputStream(fis); object2 = (MyClass)ois.readObject(); ois.close(); System.out.println("object2 : " +object2); }catch(Exception e){ System.out.println("Exception during serialization :" + e); System.exit(0); } }}
文章来源:
http://blog.163.com/ccbobo_cat/blog/static/320994622009616101541196
分享到:
相关推荐
本篇将介绍几个常用的Java序列化和反序列化框架,并通过示例代码进行演示。 1. **Java标准序列化**: Java标准序列化通过实现`Serializable`接口来标记类可序列化。要序列化一个对象,可以使用`ObjectOutputStream...
在C#中,`System.Xml.Serialization`命名空间提供了`XmlSerializer`类,它是实现XML序列化和反序列化的关键工具。序列化过程通常涉及以下几个步骤: 1. **创建Serializer实例**:首先,我们需要创建一个`...
`oslo.serialization` 是一个在PyPI上发布的Python库,它专注于数据序列化和反序列化功能。这个2.2.0版本的压缩包`oslo.serialization-2.2.0.tar.gz`包含了该库的源代码,供开发者使用。 **oslo.serialization 概述...
- 当反序列化时,确保类定义与XAML中的类名匹配,并且所有必要的命名空间已经正确导入。 - XAML Services并不支持所有的WPF特定功能,如样式、模板或资源字典。对于这些更复杂的情况,可能需要使用`XamlReader....
4. **集成到项目中**:将生成的代码导入到你的项目中,然后在需要的地方使用生成的序列化和反序列化方法。 从`minimal_serialization-master`这个压缩包中,我们可以期待找到以下内容: - `lib`目录:包含`minimal...
在上述XML序列化示例中,反序列化的代码如下: ```csharp MyData deserializedData; using (FileStream stream = new FileStream(filePath, FileMode.Open)) { deserializedData = (MyData)serializer.Deserialize...
- **自定义序列化**:对于复杂的对象结构,可以实现`MessagePack.Serialization.IMessagePackSerializationCallbackReceiver`接口来自定义序列化和反序列化的行为。 4. **UnityDemo详解** - **创建MessagePack...
序列化(Serialization)是将对象状态转换为可保存或传输的格式的过程,反序列化(Deserialization)是序列化过程的逆操作,即将字节流恢复为对象的过程。序列化主要有两个作用:数据存储和网络传输。这样,复杂的...
然后在你的DRF项目中导入并使用它,按照`README.md`中的指示配置和定制你的序列化器。 总之,`drf-action-serializer`是DRF生态系统中的一个重要补充,它增强了对字段操作的控制,提高了API设计的灵活性和可维护性...
- **序列化(Serialization)**: 将Java对象转换为JSON字符串,这通常通过`ObjectMapper.writeValueAsString()`方法实现。 - **反序列化(Deserialization)**: 将JSON字符串转换回Java对象,可以使用`...
"php _ser" 可能指的是 PHP 中的一个序列化(Serialization)功能或者自定义的库,用于处理数据的序列化和反序列化操作。 【描述】"dephi fila esociation for architecture development" 这个描述似乎存在拼写错误...
序列化是将数据结构或对象转换为可存储或传输格式的过程,而反序列化则是相反的过程,即将数据恢复到其原始形式。`JDF.jl` 旨在成为 Julia 中用于 DataFrame 对象的理想序列化工具,与广泛使用的 pandas 的 `....
3. **序列化(Serialization)**:将数据模型转换为JSON字符串。例如,用Objective-C可以这样操作: ```objc NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:0...
4. **序列化(Serialization)**:将JSON对象转换回字符串,以便在网络上传输或写入文件。序列化过程通常可以设置缩进和换行符,以生成易读的JSON格式。 5. **反序列化(Deserialization)**:从JSON字符串重建JSON...
- **序列化(Serialization)**:将Go语言中的结构体转换为JSON格式的字符串。 - **反序列化(Deserialization)**:将JSON格式的字符串转换回Go语言中的结构体。 #### 使用`encoding/json`包进行序列化和反序列化 ...
- **序列化(Serialization)**: 序列化是将Python对象转换为JSON或其他格式,以便于在网络上传输。`kwikapi_django`提供了序列化功能,使数据适应API的输出格式。 - **反序列化(Deserialization)**: 反序列化则...
5. **自定义编码解码**: 用户可以为自定义类型实现`Decodable`和`Encodable`协议,以实现自定义的JSON解析和序列化逻辑。 6. **可扩展性**: `Jay`的设计允许开发者添加自定义的解析规则,以适应特定的JSON格式需求...
- **Serialization**:将游戏数据序列化为文件,以便于保存和读取玩家的进度。 10. **调试工具**: - **Profiler**:Unity内置的Profiler工具可以帮助开发者优化性能,检测内存泄漏和CPU使用情况。 以上就是3D ...
1. **序列化(Serialization)**:将Python对象转换为JSON字符串。例如,你可以使用`json.dumps()`函数将字典、列表、元组等Python数据结构转化为JSON格式的字符串。这在发送HTTP请求或保存数据时非常有用。 ```...
C#提供了丰富的类库来处理文件读写,如`System.IO`命名空间下的`StreamReader`和`StreamWriter`,以及用于序列化的`System.Runtime.Serialization.Json`命名空间。数据序列化是将对象转换为可传输或存储的格式的过程...