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