I/O流 - Properties 和 序列化流/反序列化流

一、Properties 类 依赖于 ***.properties 文件中 (这个键值对的容器)
  构造方法:Properties();
  常用方法:Properties对象.put(key,value)//设置值
       Properties对象.getProperty(String key);//获取值
       Properties对象.load(InputStream is);//把 ***.properties 文件加载到 Properties对象中
       Properties对象.store(OutputStream out,String str(第二个参数值注释));//将Properties对象 输出到 ***.properties 文件中

二、序列化流和反序列化流

  1、序列化流(ObjectOutputStream):
      构造方法:ObjectOutputStream(FileOutputStream fos)
      常用方法:writeObject(Object obj);

      

  2、返序列化流(ObjectIntputStream):
      构造方法:ObjectIntputStream(FileIntputStream fis)
      常用方法:reafObject()
    

   需要被序列化和反序列化的列必须 实现 Serializable 接口,不需要被序列化的字段可以用 transient 修饰 例如 (private transient int age;)

 1 public class Person implements Serializable {
 2     private String name;
 3     private int age;
 4     public String getName() {
 5         return name;
 6     }
 7     public void setName(String name) {
 8         this.name = name;
 9     }
10     public int getAge() {
11         return age;
12     }
13     public void setAge(int age) {
14         this.age = age;
15     }
16     @Override
17     public String toString() {
18         return "Person [name=" + name + ", age=" + age + "]";
19     }
20     public Person(String name, int age) {
21         super();
22         this.name = name;
23         this.age = age;
24     }
25     
26     public Person() {
27         super();
28     }
29     
30 }
 1 //    序列化
 2     private void write() throws IOException{
 3         Person p = new Person("小红帽",18);
 4 //        明确数据源
 5         FileOutputStream fos = new FileOutputStream("D:\\demo0723\\Person.txt");
 6 //        创建 序列化流
 7         ObjectOutputStream oos = new ObjectOutputStream(fos);
 8         
 9 //        写入
10         oos.writeObject(p);
11         oos.close();
12     }
13     
14 //    反序列化
15     public static void read() throws IOException, ClassNotFoundException{
16 //        明确数据源
17         FileInputStream fis = new FileInputStream("D:\\demo0723\\Person.txt");
18 //        创建返序列化流
19         ObjectInputStream ois = new ObjectInputStream(fis);
20 //        从 person.txt 中读取出来
21 //        boolean  b  = 对象  instanceof  数据类型;
22 //        Person P  = (Person)ois.readObject();
23         
24         boolean b = ois.readObject() instanceof Person;
25         System.out.println(b);
26         
27 //        System.out.println(p);
28         ois.close();
29     }

 

posted @ 2019-10-22 16:50  养一只Tom猫  阅读(167)  评论(0编辑  收藏  举报