2014-11-23 55 views
-1

我',試圖編寫一個程序,示例數據然後將其添加到文件。正確的代碼似乎每次都會創建一個新文件。該文件只包含我寫給它的最後一個數據,而不包含之前的數據。試圖追加到一個文件,(我的代碼似乎不斷創建一個新文件)

代碼:

static void run2() { 

    cGlobals.mBitTrex.FillMarketData(); 

    for(int ii=0;ii<4;ii++) 
    { 
     for(int i=0; cGlobals.mBitTrex.data[i]!=null; i++) 
    { 
     cTicker prices=cGlobals.mBitTrex.data[i]; 
     String s=""; 
     s=Double.toString(prices.last)+","+Double.toString(prices.bid)+","+Double.toString(prices.ask); 
     WriteFile("gra"+prices.name+".txt", s); 
    } 
     System.out.println("Next Graph Point-"); 
     try { 
      Thread.sleep(10000); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

} 

//這個功能似乎保持創建一個新的文件,數據不會被添加到 //舊的PVC門n中的文件,該文件將只包含數據

static void WriteFile(String path, String data) { 

try { 


    File file =new File(path); 

    //if file doesnt exists, then create it 
    if(!file.exists()) 
     file.createNewFile(); 


    //true = append file 
    FileWriter fileWritter = new FileWriter(file.getName()); 
     BufferedWriter bufferWritter = new BufferedWriter(fileWritter); 
     bufferWritter.write(data); 
     bufferWritter.write("\r"); 
     bufferWritter.write("\n"); 


     bufferWritter.close(); 

}catch(IOException e){ 
    e.printStackTrace(); 
} 

}

+1

[閱讀本文](https://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html#FileWriter%28java.io.File,%20boolean%29)。你的評論'/ /真實=追加文件'表明你之前(我假設)。 – Tom 2014-11-23 22:24:49

+0

1.'new FileWriter(file.getName()'應該是'new FileWriter(file)',否則就是拋棄'path.'的一部分。2.不要測試'file.exists()'或者調用' file.createNewFile()'''new FileWriter(...)'已經在操作系統中做到了這一點,你只是重複工作,實際上導致文件被創建兩次。 – EJP 2014-11-23 23:22:20

回答

1

設置你的FileWriter通過在文件名後添加true追加模式:

FileWriter fileWritter = new FileWriter(file.getName(),true); 
相關問題