`
wjheye
  • 浏览: 83953 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

创建一个序列化学生对象,然后把对象存储到文件中,并读出存入的学生对象信息

 
阅读更多
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;
	}
}

分享到:
评论

相关推荐

    c语言学生信息管理系统(基于文件、链表)

    学生信息被序列化存储在文件中,每次读取或写入时,需要先将链表遍历一遍,然后按顺序写入或读出。这种操作方式适用于大量数据的持久化存储。 再者,链表的插入、删除和查找是系统的关键操作。插入操作通常在链表...

    将两个XML文件部分内容读出写入EXCEL

    4. 序列化:将JDOM对象转换回XML字符串或写入文件。 接下来,JXL库用于与Excel文件交互。JXL支持读取和写入Excel文件,包括单元格格式、公式、图表等功能。以下是如何使用JDOM和JXL完成任务的步骤: 1. 引入库:...

    c代码-① 向磁盘文件存入多个学生数据,并读出。 ② 定位到第 i 个学生信息的位置打印出来 (随机读写)

    通过上述步骤,这个C程序能够实现向磁盘文件存储多个学生信息,之后根据需要定位到特定学生信息并打印出来,这是数据持久化的一个典型应用。对于初学者来说,这是一个很好的学习示例,涵盖了文件操作、结构体、错误...

    《数据结构C++版》实验一:线性表的顺序存储结构实验报告

    - 这部分要求实现序列化和反序列化,将顺序表的数据存入和读出文件。这通常涉及到文件流(fstream)的使用,以及序列化数据结构到文件的逻辑。 6. **逻辑删除**: - 逻辑删除并不实际移除元素,而是标记其为已...

    JedisSerialization:实现利用Jedis向Redis中写入和得到Java对象的几种序列化工具:JDK、XML、JSON、Protostuff

    反序列化时,将Redis中的XML字符串读出并解析回Java对象。虽然XML具有良好的可读性,但其体积较大且序列化/反序列化速度较慢。 3. JSON序列化 JSON是另一种广泛使用的轻量级数据交换格式,它更紧凑且解析速度快。...

    学生成绩管理系统

    MFC提供了CArchive类来实现这一过程,它可以将对象的成员变量按顺序存入或读出,实现数据的持久化存储。 “增加”和“删除”功能涉及到数据库操作。在学生成绩管理系统中,可能需要维护学生信息表、课程信息表以及...

    自动打开文档

    CArchive类用于序列化和反序列化对象,它可以方便地将数据存入或读出文件。如果文档是特定格式(如.txt、.docx等),可能还需要使用到特定的库,如Microsoft的Office Interop库来处理Office文档。 在MFC中,启动...

    成绩管理系统

    开发者可能使用了文件流(fstream)库来实现文件的读写操作,以序列化的方式将结构体数据存入和读出。在录入成绩时,用户可以通过命令行输入相关数据,系统再进行解析并存储;在查询成绩时,系统根据用户输入的条件...

    MFC开发的简易社团管理系统

    CFile用于基本的文件读写,而CArchive则在序列化上下文中工作,可以方便地将数据对象存入或读出文件,这对于保存用户设置、社团资料等信息非常有用。 6. **事件驱动编程**:MFC遵循Windows的消息机制,事件由消息...

    javaIOjavaIOjavaIOjavaIO

    ObjectInputStream和ObjectOutputStream用于对象的序列化和反序列化,允许Java对象的数据持久化存储或在网络间传输。 7. 多路复用流: PipedInputStream和PipedOutputStream可以构建管道,实现线程间的通信。而...

    研究生基本编程能力培训项目

    5. **二进制数据文件读写**:将链表节点以二进制形式存入和读出,这涉及到不同数据类型的序列化和反序列化,以及二进制文件的读写函数。 6. **网络编程**:包括UDP和TCP协议的客户端和服务器端编程。UDP是无连接的...

    实验8 文件实验2

    实验8主要涵盖了文件操作的相关知识点,包括文本文件和二进制文件的读写,以及程序设计中的字符串替换和浮点数处理。以下是这些知识点的详细说明: 1. **文本文件和二进制文件的存储方式**: - 文本文件以可读性强...

    CacheDataTest Demo代码

    3. **文件系统**:直接将数据写入文件,通过文件路径快速访问,适用于大量数据的持久化存储。 4. **SQLite**:轻量级的关系型数据库,适合结构化的数据存储。 5. **Core Data**:苹果提供的对象图形管理框架,不仅...

    VC++的LZW算法设计源程序

    总之,LZW算法在VC++中的实现不仅涉及算法逻辑,还涉及到数据结构、文件操作和错误处理等多个方面,是理解和掌握数据压缩技术的一个良好实践。通过深入研究这个源程序,你不仅可以提升编程技能,还能对LZW算法有更...

    多思计算机组成原理实验六:程序计数器实验

    - 实验中的程序实现了输入一个数值并与存储单元08H的值相加,结果存放到09H存储单元中,并循环执行这一段代码。 #### 控制信号与实验流程 实验中涉及的主要控制信号包括: - 数据开关→PC:设置PC的初始值。 - PC...

    Linux设备驱动程序学习(3-补)-Linux中的循环缓冲区 - Linux设备驱动程序

    循环缓冲区,顾名思义,是一种数据结构,其设计灵感来源于实际的物理环形带,它在内存中形成一个闭合的序列,允许数据从一端写入,另一端读出,同时保持连续性。这种设计使得读写操作可以独立进行,无需等待对方完成...

    计算机组成原理答案

    6. **存储字(Memory Word)**:存储在一个存储单元中的二进制代码的逻辑单位。 7. **存储字长(Word Length)**:一个存储单元中所存储的二进制代码的位数。 8. **存储容量(Storage Capacity)**:存储器中可存储二进制...

    C# 字符串string和内存流MemoryStream及比特数组byte[]之间相互转换

    在C#编程中,数据类型之间的转换是常见的操作,特别是在处理数据存储、网络传输或序列化等场景。本文将详细探讨如何在字符串(string)、内存流(MemoryStream)以及比特数组(byte[])之间进行转换,这对于理解和优化代码...

    lua-leveldb:Google的leveldb库的Lua绑定

    **lua-leveldb** 是一个将 Google 的高效键值存储库 **LevelDB** 与 Lua 脚本语言相结合的绑定库。这个项目的主要目的是让 Lua 开发者能够利用 LevelDB 的强大功能,比如快速的键值读写、数据压缩以及高效的数据库...

Global site tag (gtag.js) - Google Analytics