IO流中ObjectOutputStream和ObjectInputStream的使用

package ObjectIntOutputStreamDemo;
import java.io.Serializable;//注意每个类都要有这个接口
public class Student implements Serializable {
	private int id;

	public Student(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	private String name;

	public Student() {
		// TODO Auto-generated constructor stub
	}
}

package ObjectIntOutputStreamDemo;

import java.io.Serializable;

public class Teacher implements Serializable {
	public int getTeacherId() {
		return teacherId;
	}
	public void setTeacherId(int teacherId) {
		this.teacherId = teacherId;
	}
	public String getTeacherName() {
		return teacherName;
	}
	public void setTeacherName(String teacherName) {
		this.teacherName = teacherName;
	}
	public String getDepartment() {
		return department;
	}
	public void setDepartment(String department) {
		this.department = department;
	}
	private int teacherId;
	private String teacherName;
	private String department;
	public Teacher() {
		// TODO Auto-generated constructor stub
	}
	public Teacher(int teacherId, String teacherName, String department) {
		super();
		this.teacherId = teacherId;
		this.teacherName = teacherName;
		this.department = department;
	}
}
package ObjectIntOutputStreamDemo;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class ObjectDemo implements Serializable  {

	/**
	 * @param args
	 * @throws IOException
	 * @throws ClassNotFoundException
	 */
	public static void main(String[] args) throws IOException, ClassNotFoundException {
		Student s1=new Student(1001,"涂鹏");
		Student s2=new Student(1002,"曾涛");

		Teacher t1=new Teacher(10003, "石臻臻", "软件学院");
		Teacher t2=new Teacher(10004, "石石石", "软件学院");

		FileOutputStream out=new FileOutputStream(".//student.txt");
		ObjectOutputStream oout=new ObjectOutputStream(out);

		oout.writeObject(s1);
		oout.writeObject(s2);
		oout.writeObject(t1);
		oout.writeObject(t2);

		FileInputStream in=new FileInputStream(".//student.txt");
		ObjectInputStream oin=new ObjectInputStream(in);

		Student s3=(Student) oin.readObject();
		Student s4=(Student) oin.readObject();

		Teacher t3=(Teacher) oin.readObject();
		Teacher t4=(Teacher) oin.readObject();

		oin.close();

		System.out.println(s1.getId()+"   "+s1.getName());//对比一下
		System.out.println(s3.getId()+"   "+s3.getName());
		System.out.println(t1.getTeacherId()+"   "+t1.getTeacherName()+"   "+t1.getDepartment());
		System.out.println(t3.getTeacherId()+"   "+t3.getTeacherName()+"   "+t3.getDepartment());
	}

}

IO流中ObjectOutputStream和ObjectInputStream的使用

时间: 2024-10-01 21:15:36

IO流中ObjectOutputStream和ObjectInputStream的使用的相关文章

揭开Java IO流中的flush()的神秘面纱

大家在使用Java IO流中OutputStream.PrintWriter --时,会经常用到它的flush()方法. 与在网络硬件中缓存一样,流还可以在软件中得到缓存,即直接在Java代码中缓存.这可以通过BufferedOutputStream或BufferedWriter 链接到底层流上来实现. 因此,在写完数据时,flush就显得尤为重要. 例如: 上图中WEB服务器通过输出流向客户端响应了一个300字节的信息,但是,这时的输出流有一个1024字节的缓冲区.所以,输出流就一直等着WEB

关于Java中面向对象章节、IO 流中的重点基础知识。

一.面向对象的三大特征,以及作用. 答:面向对象的三大特征即,封装性.继承性.多态性. 其分别的作用为 : 封装作用:将数据封装起来,提高数据的安全性, 继承作用:提高代码的复用性,减少冗余代码. 多态性:应用程序不必对每个派生类进行方法调用,只需要对抽象基类处理即可,大大提高程序的复用性,可以提高可扩充性和可维护性. 二.多态中的向上转型 的作用以及向下转型使用的原因 答:在多态中向上转型的是作用是,父类的引用对象名指向子类的实体,也就是用一个抽象的基类去调用每一个派生子类,向下转型的原因为,

Io流中的其他流

数据输入输出流 数据输入流: DataInputStream 数据输出流: DataOutputStream 数据输入输出流的概述 数据输入流,让应用程序读取原始java数据类型从底层输入流中的一个独立于机器的方式.一个应用程序使用一个数据输出流来写数据,以后可以通过数据输入流读取. 输入流是不一定安全的多线程访问.线程安全是可选的,是在这个类中的方法的用户的责任. 特点: 可以写基本数据类型,可以读取基本数据类型 数据输入输出流的使用 写基本数据类型dos.writeInt(45) ;dos.

Java中IO流中所涉及到的各类方法介绍

1 IO流之字节流 2 (1)IO用于在设备间进行数据传输的操作 3 (2)分类: 4 A:流向 5 输入流 读取数据 6 输出流 写出数据 7 B:数据类型 8 字节流 9 字节输入流 10 字节输出流 11 字符流 12 字符输入流 13 字符输出流 14 注意: 15 a:如果没有明确说明按照什么分,默认按照数据类型分. 16 b:除非文件用windows自带的记事本打开我们能够读懂,才采用字符流,否则建议使用字节流. 17 (3)FileOutputStream写出数据 18 A:操作步

Java IO流中 File文件对象与Properties类

File类 用来将文件或目录封装成对象 方便对文件或目录信息进行处理 File对象可以作为参数传递给流进行操作 File类常用方法 创建 booleancreateNewFile():创建新文件,如果文件存在,返回false booleanmkdir():创建目录,只能创建一级目录 booleanmkdirs():创建目录,可创建多级目录 删除 booleandelete():删除文件,如果文件不存在,返回false,如果删除的是目录,需要确保目录是空的 voiddeleteOnExit():程

IO流中文件和目录的删除程序举例

/* * 删除功能(不管是目录还是文件都是用delete方法,只能一级一级的删除,):public boolean delete() * * 注意: * A:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下. * B:Java中的删除不走回收站. * C:要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹 */ package cn.itcast_03; import java.io.File; import java.io.IOException; public class

Java IO流中的flush()

通过BufferedOutputStream或BufferedWriter 链接到底层流上来实现.因此,在写 完数据时,flush就显得尤为重要. 例如: 上图中WEB服务器通过输出流向客户端响应了一个300字节的信息,但是,这时的输出流有一个1024字节的缓冲区.所以,输出流就一直等着WEB服务器继续向客户端响应信 息,当WEB服务器的响应信息把输出流中的缓冲区填满时,这时,输出流才向WEB客户端响应消息. 为了解决这种尴尬的局面,flush()方法出现了.flush()方法可以强迫输出流(或

用IO流中的File类来创建文件及目录

题目如下: 设计一个命令窗口程序,要求按照如下的格式显示 例如:===利用命令窗口完成文件的操作===(1)创建目录 (2)创建文件 (3)删除目录 (4)删除文件 ===现在正在做创建目录的操作===目录名字:liu目录路径:F:\\Jinglin\\ZY\\创建成功,选1回到命令窗口界面,选2退出程序 ===现在正在做创建文件的操作===文件名字:liu文件路径:F:\\Jinglin\\ZY\\创建成功,选1回到命令窗口界面,选2退出程序 ===现在正在做删除目录的操作===目录名字:li

IO流中我的理解

in/outputStream处理字节    reader/out处理字符 in/out putStream  能读取:字节数字,String字符串,文件,网络?  in/out putStream 是抽象类 eg: FileOutPutStream ops=new FileOutPutStream(); ....... ops.close. eg: DataOutputStream out=new DataOutputStream(new FileOutputStream("e:\\demo\