Java - 如何替换文件内容?

时间:2016-07-27 13:04:01

标签: java

我的文件只包含需要定期更新的极少量信息。换句话说,我想在写入之前截断文件。我找到的最简单的解决方案是删除并再次创建它,如下所示:

File myFile = new File("path/to/myFile.txt");
myFile.delete();
myFile.createNewFile();
// write new contents

这个'工作'很好,但还有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

无需删除文件并重新创建文件。如果您正在写文件,例如使用PrintWriter,则会覆盖您当前的文件内容。

示例:

 public static void main(String[] args) throws IOException
 {
      PrintWriter prw= new PrintWriter (“MyFile.txt”);
      prw.println("These text will replace all your file content");          
      prw.close();
 }

如果您使用PrintWriter构造函数的重载版本,它只会附加到文件的末尾:

PrintWriter prw= new PrintWriter (new FileOutputStream(new File("MyFile.txt"), true));
//true: set append mode to true

答案 1 :(得分:0)

在下面的示例中," false"导致文件被覆盖,true会导致相反的情况。

File file=new File("C:\Path\to\file.txt");
DataOutputStream outstream= new DataOutputStream(new FileOutputStream(file,false));
String body = "new content";
outstream.write(body.getBytes());
outstream.close();