zoukankan      html  css  js  c++  java
  • Properties类、序列化流与反序列化流

    Properties类
    Properties类介绍
    
    特点:
    1、Hashtable的子类,map集合中的方法都可以用。
    2、该集合没有泛型。键值都是字符串。
    3、它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。
    4、有和流技术相结合的方法。
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Properties;
    import java.util.Set;
    //键值对文件
    public class Demo08 {
        public static void main(String[] args) throws IOException {
            method1();
            method2();
            method3();
        }
        public static void method1(){
            Properties pro=new Properties();
            //往集合中存储键值对
            pro.setProperty("b", "1");
            pro.setProperty("a", "2");
            //取值
            System.out.println(pro.getProperty("a"));
            //相当于keySet方法
            Set<String> set=pro.stringPropertyNames();
            for(String s:set){
                System.out.println(s+pro.getProperty(s));
            }
        }
        public static void method2() throws IOException{
            Properties pro=new Properties();
            FileReader fr=new FileReader("E:\java\wojiubu.properties");
            pro.load(fr);//从文件中读取键值对
            System.out.println(pro);
        }
        public static void method3() throws IOException{
            Properties pro=new Properties();
            pro.setProperty("a", "1");
            pro.setProperty("b", "2");
            pro.setProperty("c", "3");
            pro.setProperty("c", "4");
            //明确目的地
            FileOutputStream fos=new FileOutputStream("E:\java\wojiubu.properties");
            pro.store(fos, "hehe");
        }
    }
    序列化流与反序列化流
    对象序列化流ObjectOutputStream


    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    //写入文件
    public class Demo01 {
        public static void main(String[] args) throws IOException, ClassNotFoundException {
            //method1();
            method2();
        }
        public static void method1() throws IOException{
            //序列化
            Person p=new Person("alai",18);
            //明确目的地
            FileOutputStream fos=new FileOutputStream("E:\java\person.txt");
            //创建序列化流
            ObjectOutputStream oos=new ObjectOutputStream(fos);
            //向文件写入对象
            oos.writeObject(p);
            oos.close();
        }
    对象反序列化流ObjectInputStream


    //读取文件
        public static void method2() throws ClassNotFoundException, IOException{
            //明确数据源
            FileInputStream fis=new FileInputStream("E:\java\person.txt");
            //创建反序列化流
            ObjectInputStream ois=new ObjectInputStream(fis);
            Object obj=ois.readObject();
            Person p=(Person)obj;
            System.out.println(p);
            ois.close();
        }
    }
    瞬态关键字transient
    import java.io.Serializable;
    
    public class Person implements Serializable{
        private String name;
        //瞬态关键字 transient  
        private transient int age; //添加瞬态关键字的属性不会被序列化
        //自定义的序列化号
        private static final long serialVersionUID = 42L;
        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 Person(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
        public String toString() {
            return "Person [name=" + name + ", age=" + age + "]";
        }
        public Person(){
            
        }
    }
  • 相关阅读:
    41 快速的复制一张表
    4 cdh 5.12 centos 6.10三节点安装
    40 insert语句的锁
    oracle 11g 数据库恢复技术 ---02 控制文件
    05 使用bbed跳过归档恢复数据文件
    Springboot 配置文件与对象之间进行映射之@ConfigurationProperties
    @ConditionalOnProperty来控制Configuration是否生效
    Oracle 服务名/实例名,Service_name 和Sid的区别
    @Value中冒号的作用
    springboot读取配置不存在报错
  • 原文地址:https://www.cnblogs.com/zhaotao11/p/10248186.html
Copyright © 2011-2022 走看看