2016-07-27 110 views
1

我有一个文件只包含非常少量的需要定期更新的信息。换句话说,我想在写入文件之前截断文件。我发现最简单的方法是删除并重新创建如下所示:Java - 如何替换文件内容?

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

这“作品”罚款,但有没有更好的办法?

+0

您是否在意保持文件的一致性?如果你这样做,可能会有比在重复中更好的答案。 – dasblinkenlight

回答

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 
0

在下面的例子中,“假”导致文件被覆盖,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();