java中ObjectOutputStream保存对象
2019-05-12 10:49
246 查看
package com.javabase.p1; 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; import java.io.Serializable; public class Demoobjout { //Java语言只能将实现了Serializable接口的类的对象保存到文件中 public static void main(String[] args) { String str = "我想去海南吃龙虾"; String path = "c:/100.dat"; String sname = "王小美"; int age = 30; Person p = new Person(sname,age,str); //写入并保存对象 sWriteObj(p,path); System.out.println("对象已写入硬盘"); Person p101 = null; //从磁盘读取对象 p101 = sReadObj(path); if(p101 == null) { System.out.println("读取对象错误"); }else { System.out.println(p101.getsName() +" "+ p101.getIage() + " " +p101.getStr()); //比较两个对象的地址是否一样 System.out.println(p == p101); } } /** * 写入对象到硬盘 * @param pSon 需要保存的对象 * @param path 路径 全名 */ public static void sWriteObj(Person pSon,String path) { OutputStream ops = null; ObjectOutputStream oos = null; try { ops = new FileOutputStream(path); oos = new ObjectOutputStream(ops); oos.writeObject(pSon); } catch (FileNotFoundException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); }finally { try { oos.close(); ops.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * 读取对象 * @param path 全路径 * @return 返回 Person对象 */ public static Person sReadObj(String path) { Person pSon = null; try( InputStream is = new FileInputStream(path); ObjectInputStream ois = new ObjectInputStream(is); ) { pSon = (Person)ois.readObject(); } catch (Exception e) { //出错返回null return null; } return pSon; } } //Java语言只能将实现了Serializable接口的类的对象保存到文件中 //要保存的对象类必须实现 Serializable 接口 class Person implements Serializable{ private static final long serialVersionUID = -3836658895819502595L; private String str = null; private String sName = null; private int iage = 0; public Person() {} public Person(String name,int age,String s) { setsName(name); setIage(age); setStr(s); } public String getStr() { return str; } public void setStr(String str) { this.str = str; } public String getsName() { return sName; } public void setsName(String sName) { this.sName = sName; } public int getIage() { return iage; } public void setIage(int iage) { this.iage = iage; } }
相关文章推荐
- java将系列化后的对象保存在文件中,及反系列化 (ObjectInputStream,ObjectOutputStream)
- Java 保存对象到文件并恢复 ObjectOutputStream/ObjectInputStream
- 关于如何将一个对象保存到本地文件之ObjectOutputStream、ObjectInputStream的使用小结。
- Java IO系列(五):读写对象ObjectOutputStream和ObjectInputStream
- Java-IO之对象输入流输出流(ObjectInputStream和ObjectOutputStream)
- java基础之IO流--ObjectOutputStream(专门用于操作对象)
- Java-IO之对象输入流输出流(ObjectInputStream和ObjectOutputStream)
- Java对象序列化ObjectOutputStream和ObjectInputStream示例
- Java-IO之对象输入流输出流(ObjectInputStream和ObjectOutputStream)
- Java_基础—对象操作流ObjecOutputStream/ObjectInputStream
- Java IO操作——对象序列化(Serializable接口、ObjectOutputStream、以及与Externalizable接口的用法和区别)
- Java IO--对象序列化Serializable、ObjectOutputStream、ObjectInputStream、transient
- java对象流ObjectInputStream、ObjectOutputStream的使用
- java 序列化ObjectOutputStream 同一文件追加写对象问题的解决
- Java对象序列化ObjectOutputStream和ObjectInputStream示例
- Java使用ObjectOutputStream和ObjectInputStream序列号对象报java.io.EOFException异常的解决方法
- Java基础之对象的序列化(持久化)操作对象ObjectInputStream/ObjectOutputStream
- 我的Java开发学习之旅------>Java使用ObjectOutputStream和ObjectInputStream序列号对象报java.io.EOFException异常的解决方法
- java语言编程IO流之对象序列化和ObjectInputStream与ObjectOutputStream
- java ObjectOutputStream 对象的序列化 Serializable