创建文件的程序,在其上写入,但当程序第二次运行时,它会覆盖文件

Posted

技术标签:

【中文标题】创建文件的程序,在其上写入,但当程序第二次运行时,它会覆盖文件【英文标题】:Program that creates a file, writes on it, but when program runs a second time it overwrites the file 【发布时间】:2018-10-16 07:30:49 【问题描述】:

我在处理中有一个非常简单的代码,它创建了一个名为 data.txt 的空文件并在上面写入。当我终止程序时,文件与数据一起存在,但是当我再次运行程序时,程序会重新创建一个空文件并删除之前创建的文件。

PrintWriter output;

int i = 0;

void setup()


  output = createWriter("data.txt");


void draw()

  if (keyPressed)
  
    if (key == 'o')
    
      output.println(i++);

      System.out.println("Program is writing: " + i);
    
    else if (key == 'p')
    
      output.flush();
      output.close();
    
   else  

有没有办法告诉Processing如果它不退出就创建文件,如果它退出就不要这样做?我正在制作一个小型视频游戏,我需要一种存储分数的方法。

【问题讨论】:

【参考方案1】:

如果文件已经存在,你希望发生什么?程序应该读入数据,还是将数据附加到文件末尾,还是其他?

请记住,Processing 是 Java,因此如果您在 Processing reference 中找不到任何内容,您可以在 Google 上搜索“java 检查文件是否存在”或“java 附加到文件末尾”之类的内容以了解如何操作它在 Java 中。

【讨论】:

我想将数据写入(不附加)到文件中,并保存它,这样当我关闭程序并再次运行它时,我可以从该文件中读取数据。我的问题是每次我运行程序时都会创建文件,这是一个问题,因为当我在文件上写入并关闭程序并再次运行它时,它会再次创建文件,并用空文件覆盖先前创建的文件,在我可以读取之前丢失我的数据。 “Java 方式”实际上是我的第一种方法,但我在处理异常时遇到了麻烦。

以上是关于创建文件的程序,在其上写入,但当程序第二次运行时,它会覆盖文件的主要内容,如果未能解决你的问题,请参考以下文章

运行文件服务器上文件夹,我可以从运行在其上的Web API应用程序将文件写入服务器计算机上的文件夹吗?...

第二次运行应用程序时文件加载速度较慢,带有重现代码

SqlDataAdapter.Update 直到第二次更新才写入表

MFC 程序仅在某些 Windows 7 32 位计算机上存在运行时错误 R6025,并在其上安装 Visual Studio 后修复

为什么第二次线程就不能用了?

如何针对在其上运行的不同应用程序以不同方式配置 jboss EAP 6.4?