可以将java对象序列化为文件,也可以将文件反序列化为java对象
原创不易,转载请注明出处:分享java的Serializable功能
DeserializeFile2Object.java
- package com.zuidaima.util;
- import java.io.FileInputStream;
- import java.io.ObjectInputStream;
- /**
- * 反序列化文件到java对象
- *
- * @author javaniu
- *
- */
- public class DeserializeFile2Object {
- public static void main(String[] args) {
- Address address = deserialzeAddress();
- System.out.println(address);
- }
- public static Address deserialzeAddress() {
- Address address;
- try {
- FileInputStream fin = new FileInputStream("c:/address.ser");
- ObjectInputStream ois = new ObjectInputStream(fin);
- address = (Address) ois.readObject();
- ois.close();
- return address;
- } catch (Exception ex) {
- ex.printStackTrace();
- return null;
- }
- }
- }
SerializeObject2File.java
- package com.zuidaima.util;
- import java.io.FileOutputStream;
- import java.io.ObjectOutputStream;
- /**
- * 序列化java对象到文件
- *
- * @author javaniu
- *
- */
- public class SerializeObject2File {
- public static void main(String args[]) {
- serializeAddress("北京朝阳区", "中国");
- }
- public static void serializeAddress(String street, String country) {
- Address address = new Address();
- address.setStreet(street);
- address.setCountry(country);
- try {
- FileOutputStream fout = new FileOutputStream("c:\\address.ser");
- ObjectOutputStream oos = new ObjectOutputStream(fout);
- oos.writeObject(address);
- oos.close();
- System.out.println("Done");
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
相关推荐
### Java.io.Serializable 序列化...通过实现 `Serializable` 接口或 `Externalizable` 接口,可以轻松地实现序列化和反序列化功能。需要注意的是,在实际应用中还需要考虑序列化的效率、安全性以及版本兼容性等问题。
### Java序列化(Serializable)的作用与反序列化详解 #### 一、序列化的概念 序列化是指将程序中的对象转换为一系列字节流的过程,主要用于保存对象的状态或在网络之间传输对象。序列化的主要目的是为了能够持久化...
在 serializable-prj 项目中,可能包含了各种示例代码,展示了如何在Java中实现和使用序列化功能。 综上所述,Java的序列化和外部化是实现对象持久化和跨进程通信的关键技术。理解并熟练掌握这些概念,能够帮助...
6. **序列化与反序列化**:为了在网络上传输对象,如用户信息、消息等,Java的序列化机制(Serializable接口)是必不可少的。它能将对象转换为字节流,便于在网络中传输,到达目的地后再反序列化回对象。 7. **数据...
在Java中,为了使一个类可以被序列化(即对象的状态能够被转换成字节流以便存储或传输),该类需要实现`Serializable`接口。在本例中的`Xuesheng`类实现了`Serializable`接口。 #### 示例代码: ```java import ...
Java提供了内置的支持来实现序列化功能,这种支持主要体现在`Serializable`接口上。 #### 重要性及应用场景 序列化的重要性在于它能够帮助开发者解决以下问题: 1. **持久化存储**:将对象的状态存储到磁盘文件中...
Serializable是Java自带的一种序列化机制,适用于复杂对象的传递。`Bundle`同样支持Serializable对象的传递,只需使用`putSerializable()`和`getSerializable()`。 假设有一个名为`MySerializable`的类实现了...
Java的Serializable接口标记对象可被序列化,ObjectOutputStream和ObjectInputStream用于实现序列化和反序列化。 五、IO与NIO Java的I/O(Input/Output)库提供了一系列类用于读写文件和网络数据。在聊天程序中,...
Java的Serializable接口提供了这个功能,使得对象可以转换为字节流在网络上传输,到达目的地后再还原为原来的对象。 4. **设计模式**:为了实现系统的可扩展性和可维护性,开发者可能会采用如工厂模式来创建Socket...
通过实现`Serializable`接口,可以将对象转换为字节流,再在网络上传输和在另一端还原。 6. **消息协议设计**:在实现聊天功能时,需要定义一套简单的消息协议,例如,消息类型(文本、图片等)、消息内容、发送者...
Java提供了Serializable接口和ObjectInputStream/ObjectOutputStream类。 5. **数据结构与算法**:可能涉及到好友关系的管理,如用HashMap存储用户信息,用TreeSet保持好友列表的排序。 6. **设计模式**:单例模式...
8. **日期时间**:Java 8引入了新的日期和时间API(java.time包),包括LocalDate、LocalTime、LocalDateTime等类,提供了更直观和强大的日期时间处理功能。 9. **国际化与本地化**:java.util.Locale和...
6. **序列化与反序列化**:在Java和Flexsim之间交换数据时,可能需要将对象序列化成字节流,然后在另一端反序列化恢复,这涉及到Java的Serializable接口和ObjectInputStream/ObjectOutputStream类。 7. **异常处理*...
Java的`java.io.Serializable`接口和`ObjectOutputStream`、`ObjectInputStream`类可以实现这一功能。同时,对于简单的文本或二进制数据,`DataOutputStream`和`DataInputStream`可能会更合适。 4. **用户界面**:...
Java提供了`Serializable`接口和`ObjectInputStream/ObjectOutputStream`等类来支持这一过程。 6. **消息格式设计**:为了让客户端和服务器能正确解析消息,开发者需要定义一套消息格式,可能包含消息类型(如文本...
Java提供了Serializable接口,可以将对象转化为字节流进行存储或网络传输。 6. **多线程**: 如果记事本应用有复杂的后台处理任务,比如大文件加载或搜索,使用多线程能提高用户体验。Java的Thread类和...
Java提供了Serializable接口,可以将对象转换为字节流,然后在另一端反序列化回原来的对象。 4. **IO流**:在Java中,输入输出流(InputStream和OutputStream)用于读写数据。在聊天室中,我们可能需要使用...
为了实现消息的序列化和反序列化,Java的序列化API(java.io.Serializable)可能会被用到,这使得对象可以在网络间传递。另外,JSON或XML格式也可能用于数据交换,因为它们具有良好的可读性和广泛的兼容性。 最后,...
序列化是Java编程中一项重要的技术,它能够帮助开发者实现对象的持久化和网络传输等功能。通过理解序列化的原理和实现机制,开发者可以更好地利用这一特性来提高应用程序的灵活性和扩展性。同时,合理地设置`...
Java的Serializable接口和ObjectInputStream/ObjectOutputStream类可以实现这一功能。 10. **调试与测试**:良好的单元测试和集成测试是确保游戏稳定性和正确性的关键。JUnit和Mockito等工具可以帮助进行测试驱动...