15832144755
2022-03-17 bc131131c5c96f8cb3bed679d4a359820c22e335
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package com.hxzkoa.util;
import java.io.BufferedInputStream;  
import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.io.OutputStream;  
import java.util.Properties;  
 
public class ModifyConfig {
 
    /** 
     * 根据KEY,读取文件对应的值 
     * @param filePath 文件路径,即文件所在包的路径,例如:java/util/config.properties 
     * @param key 键 
     * @return key对应的值 
     */  
    public static String readData(String filePath, String key) {  
        //获取绝对路径  
//        filePath = PropertiesConfig.class.getResource("/" + filePath).toString();  
//        filePath = PropertiesConfig.class.getResource("/" + filePath).toString();  
        //截掉路径的”file:“前缀  
//        filePath = filePath.substring(6);  
        Properties props = new Properties();  
        try {  
            InputStream in = new BufferedInputStream(new FileInputStream(filePath));  
            props.load(in);  
            in.close();  
            String value = props.getProperty(key);  
            return value;  
        } catch (Exception e) {  
            e.printStackTrace();  
            return null;  
        }  
    }  
    /** 
     * 修改或添加键值对 如果key存在,修改, 反之,添加。 
     * @param filePath 文件路径,即文件所在包的路径,例如:java/util/config.properties 
     * @param key 键 
     * @param value 键对应的值 
     */  
    public static void writeData(String filePath, String key, String value) {  
        //获取绝对路径  
//        filePath = PropertiesConfig.class.getResource("/" + filePath).toString();  
        //截掉路径的”file:/“前缀  
//        filePath = filePath.substring(6);  
        Properties prop = new Properties();  
        try {  
            File file = new File(filePath);  
            if (!file.exists())  
                file.createNewFile();  
            InputStream fis = new FileInputStream(file);  
            prop.load(fis);  
            //一定要在修改值之前关闭fis  
            fis.close();  
            OutputStream fos = new FileOutputStream(filePath);  
            prop.setProperty(key, value);  
            //保存,并加入注释  
            prop.store(fos, "Update '" + key + "' value");  
            fos.close();  
        } catch (IOException e) {  
            System.err.println("Visit " + filePath + " for updating " + value + " value error");  
        }  
    }  
      
    public static void main(String[] args) {  
        
        String fileName = Config.getBaowenConfig();
 
        System.out.println(ModifyConfig.readData(fileName, "server.port"));  
        
        ModifyConfig.writeData(fileName, "server.port", "12345");  
    }  
}