Java写行多次?

Java写行多次?,java,filewriter,writer,Java,Filewriter,Writer,按照其他用户指出的正确标准编辑代码 我相信你想把傻瓜负责的工作分开 你应该让傻瓜只写例子中的数字 在您的示例中,y的写入不应该是方法的一部分,并且在写入文件的开始时调用一次 另外,@Jon Skeet关于多个文件编写器的看法是正确的。使用一个,因为它是同一个文件。当然,因为这就是你要它做的。每次调用时,它都写入x和数字。快速修复方法:如果是第一次运行,可以保留一个标志set it flag=true。并在你的方法内检查,如下所示: static void goOut(String in) {

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

我相信你想把傻瓜负责的工作分开

你应该让傻瓜只写例子中的数字

在您的示例中,y的写入不应该是方法的一部分,并且在写入文件的开始时调用一次


另外,@Jon Skeet关于多个文件编写器的看法是正确的。使用一个,因为它是同一个文件。

当然,因为这就是你要它做的。每次调用时,它都写入x和数字。快速修复方法:如果是第一次运行,可以保留一个标志set it flag=true。并在你的方法内检查,如下所示:

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();
    }
}

我不知道代码的其余部分,但我认为这正是你需要的。同意,听起来像是一场灾难

当您使用多个写入程序访问该文件时,我希望得到不可预知的结果

我认为不能保证FileWriter1会在FileWriter2之前完成任务


此外,该方法不同步

为什么要创建两个同时写入同一文件的FileWriter对象?这听起来像是灾难的秘诀。谢谢你的回答。我试图用那种方法解决问题,但没有成功。使用一个FileWriter也不起作用。您可以再次调用writer,对吗?writer.writefileCopy+系统。获取。。。。然后给writer.close打电话;在多次调用该方法之前,您是否曾经尝试过在该方法之外编写您想要编写的内容?为什么您认为这会有所帮助?什么是currentLine?嗯,我按你的要求做了,y从来没有打印过,但我得到了一个java.io.IOException:流关闭错误。它仍然会创建正确的文件类型:/n如果正确打开/关闭一个编写器,只需再次检查您的代码。我不知道你想完全实现什么,但我认为如果你陈述你的要求,可能会更有帮助。如果有帮助的话,别忘了记下我的答案
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;
    }
}