星空网 > 软件开发 > Java

java 对象流的简单使用

对象的输入输出流的作用: 用于写入对象 的信息和读取对象的信息。 使得对象持久化。
   ObjectInputStream   : 对象输入流
   ObjectOutPutStream  :对象输出流 

 

简单的实例

 1 import java.io.File; 2 import java.io.FileInputStream; 3 import java.io.FileOutputStream; 4 import java.io.IOException; 5 import java.io.ObjectInputStream; 6 import java.io.ObjectOutputStream; 7 import java.io.Serializable; 8 9 //创建要写入磁盘的类,这个类需要实现接口 Serializable(可系列化的)10 class Student implements Serializable{11   12   // 在这里保证了serialVersionUID 的唯一性,防止属性变量的临时改变,从而造成写入id与读取id不同13   private static final long serialVersionUID = 1L; 14   int id ; //额外需要添加一个属性15   16   String name ;17   transient String sex; //transient修饰属性,表示暂时的,则这个属性不会被写入磁盘18   transient int age;19   20   public Student(String name,String sex,int age){21     this.name = name;22     this.sex = sex;23     this.age = age;24   }25 }26 27 28 public class objectIO {29 30   /**31   * @param args32   * @throws IOException 33   * @throws ClassNotFoundException 34   */35   public static void main(String[] args) throws IOException, ClassNotFoundException {36     // TODO Auto-generated method stub37 38     createObj();39     readObj();40   }41   42   //(一)先写入对象43   public static void createObj() throws IOException {44     //1.创建目标路径45     File file = new File("C:\\Users\\bigerf\\Desktop\\objTest.txt");46     //2.创建流通道47     FileOutputStream fos = new FileOutputStream(file);48     //3.创建对象输出流49     ObjectOutputStream objOP = new ObjectOutputStream(fos);50     //4.创建类对象,并初始化51     Student stu = new Student("玛丽苏", "男", 18);52     //5.向目标路径文件写入对象53     objOP.writeObject(stu);54     //6.关闭资源55     objOP.close();56   }57   58   //再读取对象59   public static void readObj() throws IOException, ClassNotFoundException {60     File file = new File("C:\\Users\\bigerf\\Desktop\\objTest.txt");61     FileInputStream fis = new FileInputStream(file);62     ObjectInputStream objIP = new ObjectInputStream(fis);63     //读取对象数据,需要将对象流强制转换为 要写入对象的类型64     Student stu = (Student)objIP.readObject();65     System.out.println("\n name:"+stu.name+"\n sex:"+stu.sex+"\n age:"+stu.age);66     objIP.close(); 67   }68 69 }

 

打印效果

 name:玛丽苏 sex:null    //后面的这连个属性使用了 transient修饰   age:0

用到方法:writeObject(Object o);  //向磁盘写入对象

     readObject();  //读取磁盘的对象,注意这里需要强制类型

对象输入输出流的使用注意点:
       1.如果想将一个对象写入到磁盘中,那么对象所属的类必须要进行序列化,实现Serializable 接口,Serializable接口没有任何方法 ,是一个标记接口
       2.如果对象所属的类的成员变量发生改变,你在读取原来的对象是就会报错,如果想要解决报错,保证serialVersionUID是唯一。
       3.如果你不想将某些信息存入到磁盘 就可以同过transient关键字修饰成员变量
       4.如果一个类中引用了另外的一个类,那么另外的这个类也要实现Serializable接口。

如果:

  java 对象流的简单使用




原标题:java 对象流的简单使用

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

卖家旺季爆单,卖家都怎么看:https://www.ikjzd.com/articles/1584741381721165825
聚势而上 勇拓新机 亚马逊全球开店发布《2022中国出口跨境电商产业集群发展白皮书》:https://www.ikjzd.com/articles/1584787649667538945
“衰退概率100%”,悲观预测笼罩美国!这类卖家将受影响……:https://www.ikjzd.com/articles/1584805176510386177
新手运营tiktok有哪些好的技巧?:https://www.ikjzd.com/articles/1584808937328873474
想在TikTok上涨粉,获取高播放,你一定要掌握的5个点:https://www.ikjzd.com/articles/1584809697076711426
推出比利时站点,亚马逊接连进入欧洲小国:https://www.ikjzd.com/articles/1584832997999906817
马来西亚加强BNPL业务监管,Shopee等服务供应商被点名!:https://www.kjdsnews.com/a/1842255.html
马来西亚加强BNPL业务监管,Shopee等服务供应商被点名!:https://www.goluckyvip.com/news/220218.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流