import java.io.*;
public class Serialization {
/**
* @param args
* @throws IOException
* @throws ClassNotFoundException
*/
/*
* 创建一个序列化的学生对象,并用ObjectOutputStream类把它存储到一个文件(students.txt)中,然后再用ObjectInputStream类把存储的数据读取到一个学生对象中,即恢复保存的学生对象
*/
public static void main(String[] args) throws IOException, ClassNotFoundException {
//创建学生对象
Student stu1 = new Student(001,"张三",19,"计算机科学与技术");
Student stu2 = new Student(002,"李斯",18,"土木工程");
//将学生对象写入到文件中
FileOutputStream fos = new FileOutputStream("students.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(stu1);
oos.writeObject(stu2);
oos.close();
//从文件中读取存入的学生对象
FileInputStream fis = new FileInputStream("students.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
stu1 = (Student)ois.readObject();
stu2 = (Student)ois.readObject();
ois.close();
System.out.println("id:"+stu1.id);
System.out.println("name:"+stu1.name);
System.out.println("age:"+stu1.age);
System.out.println("deparment:"+stu1.department);
System.out.println("id:"+stu2.id);
System.out.println("name:"+stu2.name);
System.out.println("age:"+stu2.age);
System.out.println("deparment:"+stu2.department);
}
}
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;
}
}
分享到:
相关推荐
学生信息被序列化存储在文件中,每次读取或写入时,需要先将链表遍历一遍,然后按顺序写入或读出。这种操作方式适用于大量数据的持久化存储。 再者,链表的插入、删除和查找是系统的关键操作。插入操作通常在链表...
4. 序列化:将JDOM对象转换回XML字符串或写入文件。 接下来,JXL库用于与Excel文件交互。JXL支持读取和写入Excel文件,包括单元格格式、公式、图表等功能。以下是如何使用JDOM和JXL完成任务的步骤: 1. 引入库:...
通过上述步骤,这个C程序能够实现向磁盘文件存储多个学生信息,之后根据需要定位到特定学生信息并打印出来,这是数据持久化的一个典型应用。对于初学者来说,这是一个很好的学习示例,涵盖了文件操作、结构体、错误...
- 这部分要求实现序列化和反序列化,将顺序表的数据存入和读出文件。这通常涉及到文件流(fstream)的使用,以及序列化数据结构到文件的逻辑。 6. **逻辑删除**: - 逻辑删除并不实际移除元素,而是标记其为已...
反序列化时,将Redis中的XML字符串读出并解析回Java对象。虽然XML具有良好的可读性,但其体积较大且序列化/反序列化速度较慢。 3. JSON序列化 JSON是另一种广泛使用的轻量级数据交换格式,它更紧凑且解析速度快。...
MFC提供了CArchive类来实现这一过程,它可以将对象的成员变量按顺序存入或读出,实现数据的持久化存储。 “增加”和“删除”功能涉及到数据库操作。在学生成绩管理系统中,可能需要维护学生信息表、课程信息表以及...
CArchive类用于序列化和反序列化对象,它可以方便地将数据存入或读出文件。如果文档是特定格式(如.txt、.docx等),可能还需要使用到特定的库,如Microsoft的Office Interop库来处理Office文档。 在MFC中,启动...
开发者可能使用了文件流(fstream)库来实现文件的读写操作,以序列化的方式将结构体数据存入和读出。在录入成绩时,用户可以通过命令行输入相关数据,系统再进行解析并存储;在查询成绩时,系统根据用户输入的条件...
CFile用于基本的文件读写,而CArchive则在序列化上下文中工作,可以方便地将数据对象存入或读出文件,这对于保存用户设置、社团资料等信息非常有用。 6. **事件驱动编程**:MFC遵循Windows的消息机制,事件由消息...
ObjectInputStream和ObjectOutputStream用于对象的序列化和反序列化,允许Java对象的数据持久化存储或在网络间传输。 7. 多路复用流: PipedInputStream和PipedOutputStream可以构建管道,实现线程间的通信。而...
5. **二进制数据文件读写**:将链表节点以二进制形式存入和读出,这涉及到不同数据类型的序列化和反序列化,以及二进制文件的读写函数。 6. **网络编程**:包括UDP和TCP协议的客户端和服务器端编程。UDP是无连接的...
实验8主要涵盖了文件操作的相关知识点,包括文本文件和二进制文件的读写,以及程序设计中的字符串替换和浮点数处理。以下是这些知识点的详细说明: 1. **文本文件和二进制文件的存储方式**: - 文本文件以可读性强...
3. **文件系统**:直接将数据写入文件,通过文件路径快速访问,适用于大量数据的持久化存储。 4. **SQLite**:轻量级的关系型数据库,适合结构化的数据存储。 5. **Core Data**:苹果提供的对象图形管理框架,不仅...
总之,LZW算法在VC++中的实现不仅涉及算法逻辑,还涉及到数据结构、文件操作和错误处理等多个方面,是理解和掌握数据压缩技术的一个良好实践。通过深入研究这个源程序,你不仅可以提升编程技能,还能对LZW算法有更...
- 实验中的程序实现了输入一个数值并与存储单元08H的值相加,结果存放到09H存储单元中,并循环执行这一段代码。 #### 控制信号与实验流程 实验中涉及的主要控制信号包括: - 数据开关→PC:设置PC的初始值。 - PC...
循环缓冲区,顾名思义,是一种数据结构,其设计灵感来源于实际的物理环形带,它在内存中形成一个闭合的序列,允许数据从一端写入,另一端读出,同时保持连续性。这种设计使得读写操作可以独立进行,无需等待对方完成...
6. **存储字(Memory Word)**:存储在一个存储单元中的二进制代码的逻辑单位。 7. **存储字长(Word Length)**:一个存储单元中所存储的二进制代码的位数。 8. **存储容量(Storage Capacity)**:存储器中可存储二进制...
在C#编程中,数据类型之间的转换是常见的操作,特别是在处理数据存储、网络传输或序列化等场景。本文将详细探讨如何在字符串(string)、内存流(MemoryStream)以及比特数组(byte[])之间进行转换,这对于理解和优化代码...
**lua-leveldb** 是一个将 Google 的高效键值存储库 **LevelDB** 与 Lua 脚本语言相结合的绑定库。这个项目的主要目的是让 Lua 开发者能够利用 LevelDB 的强大功能,比如快速的键值读写、数据压缩以及高效的数据库...