练习题09-Proerties、IO

案例需求:
在Properties文件中手动写上姓名和年龄,读取到集合中,将该数据封装成学生对象,写到本地文件
实现步骤:
1.创建Properties集合,将本地文件中的数据加载到集合中
2.获取集合中的键值对数据,封装到学生对象中
3.创建序列化流对象,将学生对象序列化到本地文件中

package com.xxx;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class PropertiesUtils {
    private Properties pro;
    private static PropertiesUtils propertiesUtils;

    private PropertiesUtils() {
        try {
            pro = new Properties();
            //加载配置文件的信息到Properties对象中
            InputStream is = new FileInputStream("student.properties");
            //InputStreamReader isr = new InputStreamReader(new FileInputStream("student.properties"), "GBK");
            pro.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static PropertiesUtils getInstance() {

        if (propertiesUtils == null) {
            propertiesUtils = new PropertiesUtils();
        }
        return propertiesUtils;
    }

//定义一个方法根据键获取值

    public String getValue(String key) {
        return pro.getProperty(key);
    }

}


package com.xxx;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class TestPropertiesUtils {
    public static void main(String[] args) throws IOException {

        String name = PropertiesUtils.getInstance().getValue("name");
        String age = PropertiesUtils.getInstance().getValue("age");

        //实例化学生对象
        Student stu = new Student(name,Integer.parseInt(age));

        //实例化对象流
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("stu02.txt"));
        oos.writeObject(stu);
        oos.close();
    }
}

posted @ 2022-10-23 22:54  Ritchie^._.^  阅读(64)  评论(0)    收藏  举报