java写properties文件的方法

用Java写properties文件时,如果直接用setProperties和store方法往FileOutputStream写,写出来的东西面目全非了。没有正确的格式。因此我使用了这个方法来写,一行一行的读。一行一行地写。


1/**//**
2 * write property.
3 * @param title parameter defined in properties file
4 * @param key parameter defined title value
5 * @return String return value
6 */
7 String writeProp(String filePath, String fileName, String title, String key,
8 Logger logger) {
9
10 String strResult = "";
11 String pathAddFile = ""; //write file with path and name
12 String tempFile = "";
13 String strTemp = ""; //use for identify if the modify is success
14 //filePath is null the file in the default path ,else file in the filePath+\+fileName
15 if (filePath.equals("")) {
16 pathAddFile = fileName;
17 tempFile = "temp.properties";
18 }
19 else {
20 pathAddFile = filePath + systemSeparator + fileName;
21 tempFile = filePath + systemSeparator + "temp.properties";
22 }
23 //properties file
24 File aFile = new File(pathAddFile);
25 //temp file
26 File tFile = new File(tempFile);
27 if (!aFile.exists()) {

31 strResult = "error";
32 return strResult;
33 }
34 //set property to properties
35 try {
36 FileReader fr = new FileReader(pathAddFile);
37
38 BufferedReader br = new BufferedReader(fr);
39 try {
40 FileWriter fw = new FileWriter(tempFile);
41 PrintWriter out = new PrintWriter(fw);
42
43 String strLine = br.readLine().trim();
44 while (strLine != null) {
45 //identify if strLine have title,have change key
46 if (strLine.startsWith(title)) {
47 strLine = title + "=" + key;
48 strTemp = "1";
49 }
50 out.write(strLine);
51 out.println();
52 out.flush();
53 //read next line
54 strLine = br.readLine();
55 }
56 fw.close();
57 out.close();
58 //close BufferedReader object
59 br.close();
60 //close file
61 fr.close();
62 //delete properties file
63 if (aFile.exists()) {
64 if (!aFile.delete()) {
68 return "error";
69 }
70 }
71 //rename temp file to properties file
72 if (!tFile.exists()) {
76 return "error";
77 }
78 tFile.renameTo(aFile);
79 if (!strTemp.equals("1")) {
80 //there is no title prop exit so modify failed
85 strResult = "error";
86
87 }
88 return strResult;
89 }
90 catch (IOException ex2) {
91 ex2.printStackTrace();
92 strResult = "error";
93 logger.fatal(
94 "CmnEToyotaExtractProp ----- writeProp ----- failed !");
95 return strResult;
96
97 }
98 }
99 catch (FileNotFoundException ex1) {
100 ex1.printStackTrace();

103 strResult = "error";
104 return strResult;
105 }
106
107 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值