使用删除以前的数据Java写入新文件

时间:2016-10-19 09:55:19

标签: java spring file spring-mvc javabeans

我正在开发一个项目,并通过spring(beans)设置文件对象,并使用Lombok的RequiredArgsConstructor来实现。

代码:

Spring.xml:

<bean id=".." class="ImageDataProcess">
    <constructor-arg ref="x.y.z.file.newImageDataFile" />
    <other constructor args>
</bean>

ImageDataProcess.java:

@RequiredArgsConstructor
public class ImageDataProcess implements PQR {
  private final File newImageDataTextFile;
  //other values coming from spring
      @Override
      public void execute() {
          ://logic here
          :
       Forloop(){
          FileUtils.writeStringToFile(newImageDataTextFile, imageDataFileLine + NEWLINE, true);
        }
    }
}

此图像数据文件正在形成,但每次执行文件时都会附加新内容。但我只想删除文件中的新内容和旧内容。

因此,例如,我已经通过一次执行该程序将该文件作为2.7 MB的image-data.txt。 当我再次执行该程序时,它将此文件作为image-data.txt设置为5.4 MB。

我也是之前和之后文件的内容。它有重复。

我知道它与bean和spring有关,就像只有一个实例正在形成。但问题是我在执行后也想要这个文件,在下一步中上传到服务器上。

另外,在循环中我需要追加数据。但是在循环开始之前,打开一个新文件进行过度写作。

Fix:
Can I do something like have the file path from the bean(as this is always the same), but create a new file in the java file using "new File(filepath)". Will this override the existing file always?? Even if the file with the same name is present at the same location??

请告诉我如何才能实现此修复?它会在所有的工作? 我有什么方法可以做到这一点?

我是春天的新手。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

根据FileUtils文档here

只需将您的函数调用更改为

即可

FileUtils.writeStringToFile(newImageDataTextFile, imageDataFileLine + NEWLINE, false);

真正的布尔值明确告诉实用程序只是附加到文件,而不是覆盖它