Java对象输入输出流示例
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对象输入输出流示例相关推荐
- java 对象读写_java 对象输入输出流读写文件的操作实例
java 对象输入输出流读写文件的操作实例 java 支持对对象的读写操作,所操作的对象必须实现Serializable接口. 实例代码: package vo; import java.io.Ser ...
- 【Java】day21--装饰者设计模式、序列流对象、对象输入输出流、Properties配置文件部分知识点总结
(一)继承增强一个类的功能 BufferedReader 对FileReader拓展了一个功能,readLine. 需求1:编写一个类对BufferedReader的功能进行增强,增强其read ...
- Java高效输入输出流讲解
Java高效输入输出流讲解 Java中执行输出和输入操作,需要通过IO流.例如最常见的System.out.println()就是一个输出流.IO流的类比较多,但核心体系就是由File. InputS ...
- Java之输入输出流(文件的读写)
Java之输入输出流(文件的读写) 首先,在编程的世界,流明显显得很重要.C++的输入输出流,Java的输入输出流等等. 首先我们得学会如何使用Java的输入输出流.首先,它们被封装在Java的一个叫 ...
- Day 18:SequenceInputStream、合并切割mp3、对象输入输出流对象
SequenceInputStream用例题讲述用法 需求:1.把a.txt与b.txt 文件的内容合并 2.把a.txt与b.txt .c.txt文件的内容合并 import java.io.Fil ...
- IOUtils工具类复制输入输出流示例
IOUtils工具类复制输入输出流示例
- Java入门—输入输出流
File类的使用 文件是:文件可认为是相关记录或放在一起的数据的集合. Java中,使用java.io.File类对文件进行操作 public class FileDemo {public stati ...
- java实验 输入输出流_java实验七 输入输出流
有关java的实验和程序 实验七 输入输出流 一.实验目的和要求 目的: 1.掌握使用输入输出流进行文件的读写操作. 要求: 1.实验报告给出内容1,2的填充代码以及内容3的全部源代码. 二.实验内容 ...
- java回忆录—输入输出流详细讲解(入门经典)
今天我们开始进入学习 java 中比较让人头疼的事, 那就是 I/O 流.多线程.网络编程.这里对 I/O 流的一个详细讲解.希望对大家有点用吧.(不看后悔哦) 一.什么是IO Java中I/O操作主 ...
最新文章
- AttributerError: HTTPServer instance has no attribute 'server_forever'
- DirectX下 Viewing Frustum 的详细实现
- 6.8 程序示例--二分 K-Means-机器学习笔记-斯坦福吴恩达教授
- SpringMVC的表单标签库
- Jquery- 错误消息Date未定义,String未定义
- P4331 [BalticOI 2004]Sequence 数字序列(左偏树)
- IDE日志分析方法pt。 1个
- 守护基于JVM的应用程序
- 软件项目管理第二课—项目投标准备工作及投标函
- 基于voidAR实现增强现实之初音未来
- 系统发育树的美化~Figtree(图文教程)
- 抖音极速版/快手极速版自动浏览
- linux系统路由器地址查询,查找路由器登录IP地址指南
- win10系统蓝牙服务器,如何打开win10系统的蓝牙并进行设备添加
- 可爱的病毒——电脑病毒竟然被程序员当宠物养!
- Unity HTC vive移动定位器的开发使用
- 专业运动耳机哪个品牌好?运动蓝牙耳机推荐
- 基于HTML+CSS+JavaScript篮球NBA兴趣交流网页设计
- 使用H5Streamer轻松搭建视频监控项目
- 苹果CMSV10仿芒果TV影视PC+WAP模板