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小时内删除。
发表评论