Properties集合_修改配置信息

集合中的数据来自于一个文件
   注意:必须要保证该文件中的数据是键值对。
      需要使用到读取流

使用load()方法读取已有文件中的数据,存储到Properties集合中

 1 public class PropertiesDemo {
 2     public static void main(String[] args) throws IOException {
 3         PropertiesDemo();
 4     }
 5     public static void PropertiesDemo() throws IOException {
 6         Properties prop = new Properties();
 7         
 8         FileInputStream fr = new FileInputStream("F:\info.java");
 9         
10         prop.load(fr);
11         
12         prop.list(System.out);
13         
14     }
15 }

对已有的配置文件中的信息进行修改

   1.读取这个文件
   2.并将这个文件的键值数据存储到集合中
   3.再通过集合对数据进行修改
   4.再通过流将修改后的数据存储到文件中

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;

public class PropertiesDemo {
    public static void main(String[] args) throws IOException {
        test();
    }
    public static void test() throws IOException{
        
        //读取这个文件,文件可能不存在,所以先将文件封装成对象进行判断的文件是否存在,如果不存在可以抛异常或者创建一个,具体看需求
        File file = new File("F:\info.java");
        if(!file.exists()){
            file.createNewFile();
        }
        FileInputStream fr = new FileInputStream(file);
        
        //创建集合存储配置信息
        Properties prop = new Properties();
        
        //将流中的信息存储到集合中
        prop.load(fr);
        
        //修改配置信息
        prop.setProperty("04", "huangjianfengqingads");
        
        //保存
        FileWriter fw = new FileWriter(file);
        prop.store(fw, "");
        
        prop.list(System.out);
        fw.close();
        fr.close();
        
    }
}

模拟Load()方法:

 1 import java.io.BufferedReader;
 2 import java.io.FileReader;
 3 import java.io.IOException;
 4 import java.util.Properties;
 5 
 6 public class PropertiesDemo {
 7     public static void main(String[] args) throws IOException {
 8         myLoad();
 9     }
10     //模拟load方法
11     public static void myLoad() throws IOException {
12         Properties prop = new Properties();
13         BufferedReader buf = new BufferedReader(new FileReader("F:\info.txt"));
14         String line = null;
15         while((line = buf.readLine())!=null){
16             if(line.startsWith("#")){
17                 continue;
18             }
19             String[] arr = line.split("=");
20             //System.out.println(arr[0]+"::"+arr[1]);
21             prop.setProperty(arr[0], arr[1]);
22             prop.list(System.out);
23         }
24     }
25 
26 }
原文地址:https://www.cnblogs.com/LO-ME/p/3595491.html