javaIO中的对象流ObjectInputStream与ObjectOutputStream
ObjectInputStream与ObjectOutputStream可以将对象写在硬盘或者从硬盘中读取出来,当然也可以在网络中传输的时候。但是操作的对象必须实现序列化。
什么是对象的序列化?对象序列化的目标就是将对象保存在磁盘上,或者允许在网络中传输对象。
api中描述如下
api中的描述如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 一个实现了序列化的对象 package cn.bean.demo.io. object ; import java.io.Serializable; //如果这个对象拥有一个实例属性【并且这个实例的对象是自定义对象,他必须也要实现序列化,否则person不会成功写入到磁盘中,可以自行验证】 public class Person implements Serializable{ /** * 对象序列化版本号 */ private static final long serialVersionUID = 8761043201815925119L; private String name; private String sex; private String age; public String getName() { return name; } public void setName(String name) { this .name = name; } public String getSex() { return sex; } public void setSex(String sex) { this .sex = sex; } public String getAge() { return age; } public void setAge(String age) { this .age = age; } public Person(String name, String sex, String age) { super(); this .name = name; this .sex = sex; this .age = age; } @Override public String toString() { return "Person [name=" + name + ", sex=" + sex + ", age=" + age + "]" ; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 读写对象的方法 package cn.bean.demo.io. object ; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; public class ObjectOutAndInputStreamTest { public static void main(String[] args) { //testObjectOutputStream(); testObjectInputStream(); } /** * 将对象写入在磁盘文件中 */ static void testObjectOutputStream() { // try (OutputStream out = new FileOutputStream( "object.txt" ); ObjectOutputStream objectOutputStream = new ObjectOutputStream( out );) { // 写入的对象必须实现序列化 Person person = new Person( "nigulas" , "男" , "20" ); objectOutputStream.writeObject(person); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 读取磁盘文件中的对象信息 */ static void testObjectInputStream() { try (InputStream in = new FileInputStream( "object.txt" ); ObjectInputStream objectInputStream = new ObjectInputStream( in );) { Person person= (Person) objectInputStream.readObject(); System. out .println(person); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步