2015-05-04 81 views
2

我在java中編寫了一個代碼,用於運行一些可根據環境設置返回不同結果的腳本。我想存儲每次執行的結果。我嘗試使用屬性文件,但每次執行時都會覆蓋之前的結果config.properties。我做了一項研究,但沒有找到任何最有可能的例子。這是我的代碼來返回屬性文件。在每次執行時將會有所不同的值是TCpassedTCfailed將執行結果存儲在屬性文件中的java中

import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.util.Properties; 

public class ExecutionProperties { 

    public void setConfigProperties(int tcPassed, int tcFailed){ 
     Properties prop = new Properties(); 
     OutputStream output = null; 

     try { 

      output = new FileOutputStream("config.properties"); 

      // set the properties value 
      prop.setProperty("TCpassed", ""+ tcPassed); 
      prop.setProperty("TCfailed", ""+ tcFailed); 

      // save properties to project root folder 
      prop.store(output, null); 

     } catch (IOException io) { 
      io.printStackTrace(); 
     } finally { 
      if (output != null) { 
       try { 
        output.close(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 

     } 
    } 

} 

是否有可能得到執行時間,並將其存儲在config.properties爲了與之前的結果來區分?

由於之前

回答

0

可以使用構造FileOutputStream("config.properties", true) 樣品性能使用附加模式夫婦執行的文件後

#Mon May 04 13:03:29 IST 2015 
TCpassed=1 
TCfailed=1 
#Mon May 04 13:04:03 IST 2015 
TCpassed=1 
TCfailed=1 
0

屬性文件通常是鍵值對,例如

TCpassed=9 
TCfailed=1 

所以,如果你想存儲每次執行的結果,每次執行都需要一個不同的密鑰。 如果要附加到屬性文件,您可以:

  1. 將屬性文件加載爲屬性對象;
  2. 將新條目添加到Properties對象;
  3. 將屬性對象寫回文件;

下面是一個例子:

public static void appendTestResult(File propertyFile, int tcPassed, int tcFailed) { 
     try { 
      Properties properties = loadProperties(propertyFile); 
      String testId = getTestID(); 
      properties.setProperty("TCpassed_" + testId, String.valueOf(tcPassed)); 
      properties.setProperty("TCfailed_" + testId, String.valueOf(tcFailed)); 
      saveProperties(propertyFile, properties); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    public static void saveProperties(File propertyFile, Properties properties) throws IOException { 
     OutputStream outputStream = null; 
     try { 
      outputStream = FileUtils.openOutputStream(propertyFile); 
      properties.store(outputStream, "new test"); 
     } finally { 
      IOUtils.closeQuietly(outputStream); 
     } 
    } 

    public static Properties loadProperties(File propertyFile) throws IOException { 
     InputStream inputStream = null; 
     try { 
      inputStream = FileUtils.openInputStream(propertyFile); 
      Properties properties = new Properties(); 
      properties.load(inputStream); 
      return properties; 
     } finally { 
      IOUtils.closeQuietly(inputStream); 
     } 
    } 

    public static String getTestID() { 
     return new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); 
    } 
相關問題