Java多次写入写入行?

时间:2014-07-09 19:19:54

标签: java filewriter writer

static void goOut(String in) {
                  //instance variables
    String fileCopy = currentLine +     in;
    try {
        FileWriter writer = new FileWriter(output,true);


        writer.write(line1 + System.getProperty("line.separator", "\r\n"));
        writer.write(fileCopy + System.getProperty("line.separator", "\r\n"));


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

按照其他用户的指示编辑正确标准的代码。

3 个答案:

答案 0 :(得分:0)

我相信你想要把工作分开来了#go; goOut"负责。

你应该做出#34; goOut" 编写数字(在您的示例中)。

y的编写(在你的例子中)不应该是方法的一部分,并且在写入文件的开始时调用一次。

另外,@ Jon Skeet对多个FileWriters是正确的。使用一个,因为它是相同的文件。

答案 1 :(得分:0)

当然因为那是你要告诉它的事情。每次调用它都会写x和数字。快速修复:你可以保留一个标志,如果它是第一次运行设置 flag = true。并检查你的方法,就像这样:

public class YourClass{

private boolean didRun = false;

static void goOut(String in) {

    ...... init ur file and writer
    if(!didRun)
       writer.write(Y);

     writer.write(in);
     writer.close();
     didRun = true;
    }
}

我不知道剩下的代码,但我认为这就是你需要的

答案 2 :(得分:0)

同意,听起来像是一场灾难。

当您使用多个编写器访问该文件时,我希望得到不可预测的结果。

我不认为FileWriter1会在FileWriter2之前完成任务。

此外,该方法不同步。