Java 如何在不删除文件内容的情况下删除文件内容?
我想清除具有特定扩展名file.tctl的文件的内容,我不想更改该文件的任何内容,也不想删除它。该文件是从特定的模型检查器生成的,因此我只需删除内容并编写自己的文件。我试图打印一个空字符串,如下所示:Java 如何在不删除文件内容的情况下删除文件内容?,java,file,Java,File,我想清除具有特定扩展名file.tctl的文件的内容,我不想更改该文件的任何内容,也不想删除它。该文件是从特定的模型检查器生成的,因此我只需删除内容并编写自己的文件。我试图打印一个空字符串,如下所示: PrintWriter=新的PrintWriter(file.tctl); 作者:印刷体(“”); writer.close() 但是这个文件不起作用了。因此,如果有其他方法来清除文件内容。您必须使用FileOutputStream,然后使用truncate()方法: 文件f=新文件(“文件路径.
PrintWriter=新的PrintWriter(file.tctl);
作者:印刷体(“”);
writer.close()代码>
但是这个文件不起作用了。因此,如果有其他方法来清除文件内容。您必须使用FileOutputStream,然后使用truncate()方法:
文件f=新文件(“文件路径.here”);
FileChannel通道=新的FileOutputStream(f,true).getChannel();
通道截断(0);
channel.close();
按如下方式调用write()方法:
.write((new String()).getBytes());
这将使您的文件为空。如果不起作用,请尝试以下方法:
FileOutputStream erasor = new FileOutputStream("filename.ext");
erasor.write((new String()).toByteArray());
erasor.close();
或者只是尝试覆盖文件
//open file in override mode
FileOutputStream out = new FileOutputStream("filename.ext");
//now anything that we write here will remove the old one so just write space ("") here
只需从代码中完全删除打印。您已经使用新的FileOutputStream/PrintWriter/或您用来打开它的任何文件截断了该文件。不需要I/O或truncate()。不要使用附加模式。我想这是最简单的方法
new RandomAccessFile("filename.ext", "rw").setLength(0);
但如果我使用新文件,该文件将被删除,并创建同名的新文件。我想保留相同的文件否,新文件不在目录中创建新文件,它只创建“文件表示”在java中,删除附加模式和截断同样有效:你不必这样做。是的,这很有帮助:D第一个建议不可编译:第二个建议是多余的。你能解释更多吗?我不明白你的确切意思
new RandomAccessFile("filename.ext", "rw").setLength(0);