ObjectOutputStream和ObjectInputStream类所读写的对象必须实现了Serializable的接口,对象中的transient和static类型的成员变量不会被读取和写入.
下面写个简单的例子:
1. SerializationTest.java文件
package cn.com;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class SerializationTest {
public static void main(String[] args) {
Student student1 = new Student(19, "zhangsan", 25, "chemistry");
Student student2 = new Student(20, "lisi", 23, "phsical");
try {
FileOutputStream fos = new FileOutputStream("student.txt");
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(student1);
os.writeObject(student2);
os.close();
FileInputStream fis = new FileInputStream("student.txt");
ObjectInputStream is = new ObjectInputStream(fis);
try {
student1 = (Student) is.readObject();
student2 = (Student) is.readObject();
is.close();
System.out.println("id1 = " + student1.id);
System.out.println("name1 = " + student1.name);
System.out.println("id2 = " + student2.id);
System.out.println("name2 = " + student2.name);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.Student.java文件
package cn.com;
import java.io.Serializable;
public class Student implements Serializable {
int id;
String name;
int age;
String department;
public Student(int id, String name, int age, String department) {
this.id = id;
this.name = name;
this.age = age;
this.department = department;
}
}
分享到:
相关推荐
在Java中,ObjectOutputStream和ObjectInputStream是两个非常重要的类,分别用于序列化和反序列化。ObjectOutputStream将Java对象转换为字节流,而ObjectInputStream则将字节流恢复为Java对象。 下面是一个简单的...
通过学习和实践`ObjectInputStream`,开发者可以有效地在内存、磁盘或网络之间传递Java对象,增强了程序的灵活性和可移植性。不过,同时也需要注意安全性和版本兼容性问题。在实际开发中,理解并掌握这些知识点是至...
我自己写的一些关于IO中的见解,可以用来参考。 File的增、删、改、查,FileReader和FileWriter类,BufferedReader和BufferedWriter类,ObjectOutputStream和ObjectInputStream类
在Java编程中,Socket和ObjectOutputStream是两个非常重要的概念,它们是进行网络通信的基础。Socket是TCP/IP协议的实现,提供了两台计算机之间双向、独立的数据传输通道。而ObjectOutputStream则是一个序列化流,...
我们使用 FileOutputStream 和 FileInputStream 来读写文件,然后使用 ObjectOutputStream 和 ObjectInputStream 来将对象写入到文件中或从文件中读取对象。 实验目的: 1. 掌握对象串行化的概念和作用 2. 掌握...
在 Java 中,`ObjectInputStream` 和 `ObjectOutputStream` 是两个非常重要的类,它们分别用于实现对象的反序列化和序列化。序列化是将对象的状态转换为字节流的过程,以便可以存储在磁盘上或通过网络传输。反序列化...
在Java I/O体系中,ObjectInputStream和ObjectOutputStream是两个关键类,它们提供了序列化和反序列化的功能,使得Java对象可以被写入到流中(例如磁盘或网络)并在之后重新读取。而FileInputStream则用于处理二进制...
使用流套接字建立客户机 运用ObjectOutputStream,ObjectInputStream,ServerSocket,Socket;
该机制通过使用ObjectOutputStream和ObjectInputStream两个类来实现对象的序列化和反序列化。 在Java对象流实例代码中,主要使用了ObjectOutputStream和ObjectInputStream两个类。ObjectOutputStream用于将对象写入...
4. **数据流和对象流**:数据流(如`DataOutputStream`和`DataInputStream`)通常用于处理基本数据类型,而对象流(`ObjectOutputStream`和`ObjectInputStream`)则专门处理Java对象。 5. **缓冲流...
Java提供了ObjectOutputStream和ObjectInputStream类来进行对象的序列化和反序列化操作。 **实验过程及算法** 1. **设计学生类接口**:定义接口,包含添加成绩、查询成绩、显示排名等方法。 2. **实现集合操作**:...
我们使用了ObjectOutputStream和ObjectInputStream类来实现对象的序列化和反序列化。 知识点10:Java开发实践 在这个实例中,我们使用了Java开发实践来实现财务管理系统。我们遵循了Java开发的最佳实践,使用了...
通过这个实验,学生将学习如何使用 Java 语言进行文件输入输出操作,掌握 ObjectInputStream 和 ObjectOutputStream 两个类的使用方法,并了解如何将数据写入磁盘文件中。 一、实验目的 本次实验的目的是通过对 ...
ObjectOutputStream和ObjectInputStream类允许我们将Java对象转换为字节流,通过网络传输,然后在另一端恢复为原来的对象。这对于传递复杂的数据结构,如用户信息、订单等,非常实用。 论文中可能还涉及了异常处理...
“序列化Demo”的内容可能包括了如何创建可序列化的Java类,如何使用ObjectOutputStream和ObjectInputStream进行序列化和反序列化操作,以及如何处理序列化过程中可能出现的问题,如版本控制和安全性。同时,IPCDemo...
ObjectOutputStream和ObjectInputStream类分别用于对象的序列化和反序列化。 5. **用户界面设计**:尽管这是一个简化版的QQ,但仍需有基本的用户交互界面。这可能涉及到Java Swing或JavaFX库,用于创建窗口、按钮、...
Java提供了ObjectOutputStream和ObjectInputStream类用于对象的序列化和反序列化,这样可以将聊天消息转化为字节流在网络上传输,到达目的地后再还原为原始对象。 代码的可维护性和优化也是重要的一环。如果部分...
3. **数据序列化**:Java的ObjectOutputStream和ObjectInputStream类用于序列化和反序列化对象,使得可以将聊天消息(可能是自定义的对象)通过网络传输。 4. **图形用户界面(GUI)**:Java提供了Swing和JavaFX等...
Java提供标准的序列化API,主要包括java.io.Serializable接口和ObjectOutputStream及ObjectInputStream类。 使用序列化,我们可以持久化对象的状态,即使程序关闭后,再次运行时也能恢复之前的对象状态。例如,在...
- ObjectInputStream和ObjectOutputStream:允许我们序列化和反序列化Java对象,进行持久化存储或网络传输。 5. 文件操作: - File类:提供文件和目录的创建、删除、重命名等操作,但不涉及文件内容的读写。 - ...