这是在Java中重写文件内容的最佳方法吗?

2022-08-31 23:53:24

我想重写文件的内容。

到目前为止,我想到的是:

  1. 保存文件名
  2. 删除现有文件
  3. 创建具有相同名称的新空文件
  4. 将所需内容写入空文件

这是最好的方法吗?还是有更直接的方法,即不必删除和创建文件,而只需更改内容?


答案 1

要使用 FileOutputStream 覆盖 file foo.log:

File myFoo = new File("foo.log");
FileOutputStream fooStream = new FileOutputStream(myFoo, false); // true to append
                                                                 // false to overwrite.
byte[] myBytes = "New Contents\n".getBytes(); 
fooStream.write(myBytes);
fooStream.close();

或使用 FileWriter :

File myFoo = new File("foo.log");
FileWriter fooWriter = new FileWriter(myFoo, false); // true to append
                                                     // false to overwrite.
fooWriter.write("New Contents\n");
fooWriter.close();

答案 2

为此,我强烈建议使用Apache Common的FileUtil。我发现这个软件包非常宝贵。它易于使用,同样重要的是,当您稍后返回时,它易于阅读/理解。

//Create some files here
File sourceFile = new File("pathToYourFile");
File fileToCopy = new File("copyPath");

//Sample content
org.apache.commons.io.FileUtils.writeStringToFile(sourceFile, "Sample content");

//Now copy from source to copy, the delete source.
org.apache.commons.io.FileUtils.copyFile(sourceFile, fileToCopy);
org.apache.commons.io.FileUtils.deleteQuietly(sourceFile);

更多信息可以在以下位置找到: http://commons.apache.org/io/api-release/org/apache/commons/io/FileUtils.html