ObjectInputStream:对象输入流
ObjectOutputStream:对象输出流
Serializable:要序列化的对象必须实现此序列化接口,但此接口没有方法需要实现,只是作为一个标志,如果没有实现此接口会出现 NotSerializableException 异常。
serialVersionUID:序列化版本号,必须用 final static long 修饰,且最好加 private
transient:修饰符,被修饰的成员不会被序列化。

Student类:

public class Student implements Serializable { //一定要实现此接口,否则会出异常private final static long serialVersionUID = 100L; //指定序列化版本号private String name;private int age;private transient String nickname; //昵称,transient修饰,不会被序列化public Student() {}public Student(String name, int age, String nickname) {this.name = name;this.age = age;this.nickname = nickname;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getNickname() {return nickname;}public void setNickname(String nickname) {this.nickname = nickname;}
}

将对象写入文件:

public class ObjectOutputStreamTest {public static void main(String[] args) {try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("C:\\Users\\Administrator\\Desktop\\FileTest\\Object1.txt"))){//实例化两个Student对象并写入文件Student s1 = new Student("周冠宇",22,"Zhou");Student s2 = new Student("拉塞尔",23,"Rus");oos.writeObject(s1);oos.writeObject(s2);}catch (IOException e){e.printStackTrace();}}
}

从文件读取对象并输出:

public class ObjectInputStreamTest {public static void main(String[] args) {try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("C:\\Users\\Administrator\\Desktop\\FileTest\\Object1.txt"))){//循环读取对象,强转为Student类型,输出对象的属性值Student s = null;while ((s = (Student) ois.readObject()) != null) {System.out.println("姓名:"+s.getName()+",年龄:"+s.getAge()+",绰号:"+s.getNickname());}}catch (EOFException e){System.out.println("对象读取完毕");} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}}
}

运行结果:

关于此处try catch写法,为什么没有在 finally 中关闭流?
java中带参数的try(){}语法含义是什么?

Java对象输入输出流示例相关推荐

  1. java 对象读写_java 对象输入输出流读写文件的操作实例

    java 对象输入输出流读写文件的操作实例 java 支持对对象的读写操作,所操作的对象必须实现Serializable接口. 实例代码: package vo; import java.io.Ser ...

  2. 【Java】day21--装饰者设计模式、序列流对象、对象输入输出流、Properties配置文件部分知识点总结

    (一)继承增强一个类的功能 BufferedReader    对FileReader拓展了一个功能,readLine. 需求1:编写一个类对BufferedReader的功能进行增强,增强其read ...

  3. Java高效输入输出流讲解

    Java高效输入输出流讲解 Java中执行输出和输入操作,需要通过IO流.例如最常见的System.out.println()就是一个输出流.IO流的类比较多,但核心体系就是由File. InputS ...

  4. Java之输入输出流(文件的读写)

    Java之输入输出流(文件的读写) 首先,在编程的世界,流明显显得很重要.C++的输入输出流,Java的输入输出流等等. 首先我们得学会如何使用Java的输入输出流.首先,它们被封装在Java的一个叫 ...

  5. Day 18:SequenceInputStream、合并切割mp3、对象输入输出流对象

    SequenceInputStream用例题讲述用法 需求:1.把a.txt与b.txt 文件的内容合并 2.把a.txt与b.txt .c.txt文件的内容合并 import java.io.Fil ...

  6. IOUtils工具类复制输入输出流示例

    IOUtils工具类复制输入输出流示例

  7. Java入门—输入输出流

    File类的使用 文件是:文件可认为是相关记录或放在一起的数据的集合. Java中,使用java.io.File类对文件进行操作 public class FileDemo {public stati ...

  8. java实验 输入输出流_java实验七 输入输出流

    有关java的实验和程序 实验七 输入输出流 一.实验目的和要求 目的: 1.掌握使用输入输出流进行文件的读写操作. 要求: 1.实验报告给出内容1,2的填充代码以及内容3的全部源代码. 二.实验内容 ...

  9. java回忆录—输入输出流详细讲解(入门经典)

    今天我们开始进入学习 java 中比较让人头疼的事, 那就是 I/O 流.多线程.网络编程.这里对 I/O 流的一个详细讲解.希望对大家有点用吧.(不看后悔哦) 一.什么是IO Java中I/O操作主 ...

最新文章

  1. AttributerError: HTTPServer instance has no attribute 'server_forever'
  2. DirectX下 Viewing Frustum 的详细实现
  3. 6.8 程序示例--二分 K-Means-机器学习笔记-斯坦福吴恩达教授
  4. SpringMVC的表单标签库
  5. Jquery- 错误消息Date未定义,String未定义
  6. P4331 [BalticOI 2004]Sequence 数字序列(左偏树)
  7. IDE日志分析方法pt。 1个
  8. 守护基于JVM的应用程序
  9. 软件项目管理第二课—项目投标准备工作及投标函
  10. 基于voidAR实现增强现实之初音未来
  11. 系统发育树的美化~Figtree(图文教程)
  12. 抖音极速版/快手极速版自动浏览
  13. linux系统路由器地址查询,查找路由器登录IP地址指南
  14. win10系统蓝牙服务器,如何打开win10系统的蓝牙并进行设备添加
  15. 可爱的病毒——电脑病毒竟然被程序员当宠物养!
  16. Unity HTC vive移动定位器的开发使用
  17. 专业运动耳机哪个品牌好?运动蓝牙耳机推荐
  18. 基于HTML+CSS+JavaScript篮球NBA兴趣交流网页设计
  19. 使用H5Streamer轻松搭建视频监控项目
  20. 苹果CMSV10仿芒果TV影视PC+WAP模板

热门文章

  1. python中字典类型使用与说明
  2. 软件自动化测试平台设计,通用自动测试软件平台设计
  3. 云原生社区 大佬博客
  4. [经典]Python 一篇学会多线程
  5. 知识图谱在畜牧业中的应用实例
  6. 重命名文件名 | 一键导出表格,让您的文件快速整理归档
  7. mediasoup-demo 实践
  8. ffmpeg捕捉摄像头发送rtmp
  9. G1收集器:CPU与Worker线程的关系及一次实际排查案例
  10. [渝粤教育] 中南财经政法大学 生活中的管理会计 参考 资料