java 对象流_Java对象流

1 packageorg.java;2

3 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.FileOutputStream;6 importjava.io.IOException;7 importjava.io.ObjectInputStream;8 importjava.io.ObjectOutputStream;9 importjava.io.Serializable;10 /*

11 ObjectOutputStream:对象输入流12 ObjectInputStream:对象输出流13 分别是 InputStream和OutputStream的子类14 构造方法15 ObjectOutputStream(OutputStream out);16 ObjectInputStream(InputStream in);17 先用InputStream的子类 创建一个 流对象(如:fileInputStream),然后 用ObjectInputStream(fileInputStream)接收参数 创建对象流18 注意:对象实现Serializable接口-- 即:implements Serializable 就可以了19 使用20 writeObject(Object object);//将对象 写入文件中21 readObject();//读取一个文件到程序中-->需要强制类型转换成 自定的对象22

23 */

24 public classObject {25

26 public static voidmain(String[] args) {27 /*

28 * 定义一个Student类,里面含name、age属性;29 * 定义一个测试类,创建一个Student数组,数组中的Student对象赋初值,30 * 将数组中的各个Student对象的内容输出到student.txt文件中;31 * 然后将文件中的内容读出并在显示器中显示出来。32 *33 */

34 //ObjectOutputStream是对Java对象进行序列号处理,处理后的数据,不是文本数据,所以该数据保存到txt中,必然是乱码。35 //创建一个Student数组,数组中的Student对象赋初值,

36 Student[] students=new Student[5];37 for(int i=0;i<5;i++) {38 students[i]=new Student("名字Jack"+i, 20+i);39 }40 try{41 //将数组中的各个Student对象的内容输出到student.txt文件中;42 //需要在try-catch语句中

43 String path="C:\\Users\\Nirobert Einteson\\Desktop\\java\\File\\";//文件的所在的目录

44 File studentFile=new File(path+"student.txt");45

46 FileOutputStream fileOutputStream=newFileOutputStream(studentFile);47 ObjectOutputStream objectOutputStream=new ObjectOutputStream(fileOutputStream);//源 是fileOutputStream

48 for(Student student:students) {49 //System.out.println(student);

50 objectOutputStream.writeObject(student);51 }52 objectOutputStream.writeObject(null);//写入空,判断 是否到达末尾了

53 objectOutputStream.flush();//清空缓冲区54 objectOutputStream.close();//先关闭增强型的 对象流

55 fileOutputStream.close();//然后再关闭 字节型 流56

57 //关闭 写的文件之后,才能读文件;58 //然后将文件中的内容读出并在显示器中显示出来。

59 FileInputStream fileInputStream=new FileInputStream(studentFile);//读取这个文件,先变成字节流文件

60 ObjectInputStream objectInputStream=new ObjectInputStream(fileInputStream);//字节流文件 作为 源

61 Student student;//需要强制类型转换(Student)objectInputStream.readObject();

62 while((student=(Student)objectInputStream.readObject())!=null) {//引用型,为空返回值是null//如果不是没有加入null的话,容易抛出异常;

63 System.out.println(student);64 }65 objectInputStream.close();66 fileInputStream.close();67

68 }catch(Exception e) {69 System.out.println(e);70 }71 }72

73 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值