-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