JavaProperties类读取和修改配置⽂件信息
在我们平时写程序的时候,有些参数是经常改变的,⽽这种改变不是我们预知的。⽐如说我们开发了⼀个操作数据库的模块,在开发的时候我们连接本地的数据库那么 IP ,数据库名称,表名称,数据库主机等信息是我们本地的,要使得这个操作数据的模块具有通⽤性,那么以上信息就不能写死在程序⾥。通常我们的做法是⽤配置⽂件来解决。各种语⾔都有⾃⼰所⽀持的配置⽂件类型。⽐如 Python ,他⽀python是脚本语言吗
持 .ini ⽂件。因为他内部有⼀个nfigParser 类来⽀持 .ini ⽂件的读写,根据该类提供的⽅法程序员可以⾃由的来操作 .ini ⽂件。⽽
在 Java 中, Java ⽀持的是 .properties ⽂件的读写。 JDK 内置的java.util.Properties 类为我们操作 .properties ⽂件提供了便利。
以下为服务器、数据库信息
dbPort = localhost
databaseName = mydb
dbUserName = root
dbPassword = root
# 以下为数据库表信息
dbTable = mytable
# 以下为服务器信息
ip = 192.168.0.9
······
在上⾯的⽂件中我们假设该⽂件名为: test.properties ⽂件。其中 # 开始的⼀⾏为注释信息;在等号“ = ”左边的我们称之为key ;等号“ = ”右边的我们称之为 value 。(其实就是我们常说的键 - 值对) key 应该是我们程序中的变量。⽽ value 是我们根据实际情况配置的。
以下是操作properties⽂件的⼯具类:
Java代码
1. import java.io.BufferedInputStream;
2. import java.io.File;
3. import java.io.FileInputStream;
4. import java.io.FileOutputStream;
5. import java.io.IOException;
6. import java.io.InputStream;
7. import java.io.OutputStream;
8. import java.util.Properties;
9.
properties文件用什么打开10. /**
11.  * Java读写修改Property⽂件
12.  * @author xiewanzhi
13.  * @date 2011-4-7上午09:19:03
14.  * @version 1.0
15.  */
16. public class PropertiesConfig {
17.
18. /**
19.      * 根据KEY,读取⽂件对应的值
20.      * @param filePath ⽂件路径,即⽂件所在包的路径,例如:java/util/config.properties
21.      * @param key 键
22.      * @return key对应的值
23.      */
24. public static String readData(String filePath, String key) {
25. //获取绝对路径
php猴子吃桃代码26.        filePath = Resource("/" + filePath).toString();
27. //截掉路径的”file:“前缀
28.        filePath = filePath.substring(6);
29.        Properties props = new Properties();
30. try {
31.            InputStream in = new BufferedInputStream(new FileInputStream(filePath));
32.            props.load(in);
33.            in.close();
34.            String value = Property(key);
35. return value;
36.        } catch (Exception e) {
37.            e.printStackTrace();
38. return null;
39.        }
40.    }
svg添加到方法41. /**
42.      * 修改或添加键值对 如果key存在,修改, 反之,添加。
43.      * @param filePath ⽂件路径,即⽂件所在包的路径,例如:java/util/config.properties
44.      * @param key 键
45.      * @param value 键对应的值
46.      */
47. public static void writeData(String filePath, String key, String value) {
48. //获取绝对路径
49.        filePath = Resource("/" + filePath).toString();
50. //截掉路径的”file:/“前缀
51.        filePath = filePath.substring(6);
52.        Properties prop = new Properties();
typescript中interface53. try {
54.            File file = new File(filePath);
55. if (!ists())
56.                ateNewFile();
57.            InputStream fis = new FileInputStream(file);
58.            prop.load(fis);
59. //⼀定要在修改值之前关闭fis
60.            fis.close();
61.            OutputStream fos = new FileOutputStream(filePath);
62.            prop.setProperty(key, value);
63. //保存,并加⼊注释
64.            prop.store(fos, "Update '" + key + "' value");
65.            fos.close();
66.        } catch (IOException e) {
67.            println("Visit " + filePath + " for updating " + value + " value error");
68.        }
69.    }
css中position属性的默认值70.
71. public static void main(String[] args) {
72.        System.out.adData("com/xiewanzhi/property/config.properties", "port"));
73. //      PropertiesConfig.writeData("com/xiewanzhi/property/config.properties", "port", "12345");
74.    }
75. }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。