我的文件只包含需要定期更新的极少量信息。换句话说,我想在写入之前截断文件。我找到的最简单的解决方案是删除并再次创建它,如下所示:
File myFile = new File("path/to/myFile.txt");
myFile.delete();
myFile.createNewFile();
// write new contents
这个'工作'很好,但还有更好的方法吗?
答案 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();