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一般配合字符流来使用,因为字节流读取中文时会出现问题
    }
}
原文地址:https://www.cnblogs.com/viplanyue/p/12700444.html