• Java第三十一天,用Properties集合操作IO


    一、Properties

    这个类是线程安全的:多个线程可以共享一个Properties对象,而不需要外部同步

    1.常用方法

    Object setProperty(String key, String value) ===> 存储数据

    String getProperty(String key) ===> 读取数据

    void load(InputStream inStream) ===> 从输入字节流读取属性列表(键和元素对)

    void load(Reader reader) ===> 以简单的线性格式从输入字符流读取属性列表(关键字和元素对)

    void store(OutputStream out, String comments) ===> 将此属性列表(键和元素对)写入此 Properties表中,comments不能是中文

    void store(Writer writer, String comments) ===> 将此属性列表(键和元素对)写入此 Properties表中

    Set<String> stringPropertyNames()  ===> 返回所有键的集合

    2.具体使用

    import java.io.*;
    import java.util.Properties;
    import java.util.Set;
    
    public class FileList {
        public static void main(String[] args) throws IOException {
            Properties list = new Properties();
            list.setProperty("端游","英雄联盟");
            list.setProperty("手游","王者荣耀");
    
            Set<String> keys = list.stringPropertyNames();
            for (String key : keys) {
                System.out.println(key + " ===> " + list.getProperty(key));
            }
    
            FileOutputStream file = new FileOutputStream("F:\data.txt");
            list.store(file,"lanYue");
            file.close();
    
            FileWriter writer = new FileWriter("F:\info.txt");
            list.store(writer,"HuHai");
            writer.close();
    
            Properties listTemp = new Properties();
            FileReader reader = new FileReader("F:\info.txt");
            listTemp.load(reader);
            Set<String> keysTemp = listTemp.stringPropertyNames();
            for (String key : keysTemp) {
                System.out.println(key + "=" + listTemp.getProperty(key));
            }
            reader.close();
    
            Properties listTempTwo = new Properties();
            FileInputStream fileInput = new FileInputStream("F:\info.txt");
            listTempTwo.load(fileInput);
            Set<String> keysFileInput = listTempTwo.stringPropertyNames();
            for (String key : keysFileInput) {
                System.out.println(key + " == " + new String(listTempTwo.getProperty(key)));
            }
            fileInput.close();
            //Properties一般配合字符流来使用,因为字节流读取中文时会出现问题
        }
    }
  • 相关阅读:
    程序的本质复杂性和元语言抽象
    编译器词法消歧设计
    关于分工的思考 (Thoughts on Division of Labor)
    数据即代码
    类型的本质和函数式实现
    二叉树迭代器算法
    kvm虚拟化存储管理
    kvm网络虚拟化管理
    kvm虚拟机的四种网络模式
    Linux 中交换空间 (swap)应该分多大才好?
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700444.html
走看看 - 开发者的网上家园