随笔-9  评论-15  文章-1  trackbacks-0
    用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  }
   该方法实现了对属性文件参数的修改。
posted on 2005-08-02 15:41 jam 阅读(5173) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: