当前位置: 首页 > 面试题库 >

使用RandomAccessFile清除Java中文件的内容

马奇略
2023-03-14
问题内容

我正在尝试清除我在Java中制作的文件的内容。该文件是通过PrintWriter调用创建的。我在这里读到可以使用RandomAccessFile这样做,而在其他地方读到,实际上它比调用一个新的PrintWriter并立即关闭以用空白文件覆盖该文件更好。

但是,使用RandomAccessFile不起作用,并且我不明白为什么。这是我的代码的基本轮廓。

PrintWriter writer = new PrintWriter("temp","UTF-8");

while (condition) {
writer.println("Example text");

if (clearCondition) {
new RandomAccessFile("temp","rw").setLength(0);
      //  Although the solution in the link above did not include ',"rw"'
      //  My compiler would not accept without a second parameter
writer.println("Text to be written onto the first line of temp file");
}
}
writer.close();

运行与上述代码等效的操作,为我的临时文件提供内容:(
让我们想象程序在遇到clearCondition之前循环了两次)

Example Text
Example Text
Text to be written onto the first line of temp file

注意:清除文件后,编写者需要能够再次将“示例文本”写入文件。clearCondition并不意味着while循环会中断。


问题答案:

您想刷新,PrintWriter以确保在将RandomAccessFile的长度设置为0
之前先写出其缓冲区中的更改,或者关闭它并重新打开新的PrintWriter以写入最后一行(要写入的文本。)。 )。最好是前者:

if (clearCondition) {
writer.flush();
new RandomAccessFile("temp","rw").setLength(0);


 类似资料:
  • 问题内容: 即时通讯使用log4j写入具有以下属性文件的文件: 我的问题是,在我的程序的每次运行中,我都想清除文件“ temp.ppr”,然后使用lo4j有效地对其进行写入?还是您建议其他解决方案? 谢谢 问题答案: 您可以这样做: 然后在应用程序的启动代码中: 这样,对于程序的每次运行,现有日志都将移至“ temp.ppr.1”,并且“ temp.ppr”将重新开始。这样,您也总是拥有上一次运行

  • 本文向大家介绍PowerShell使用Clear-Content命令删除、清空文件内容的例子,包括了PowerShell使用Clear-Content命令删除、清空文件内容的例子的使用技巧和注意事项,需要的朋友参考一下 本文介绍PowerShell中如何将文件的内容进行删除或清空,使用VBScript要先创建FSO,然后再打开文件,再修改文件;PowerShell清空文件只要一句Clear-Con

  • 问题内容: 当用户单击我页面上的按钮时,应清除div的内容。我将如何实现这一目标? 问题答案: 只是Javascript(根据要求) 将此功能添加到页面上的某个位置(最好在中) 然后在点击事件上添加按钮: 在JQuery中(供参考) 如果您喜欢JQuery,则可以执行以下操作:

  • 22.9.Clean clean 任务是一个 Delete 的实例. 它只是删除 dir 属性指定的目录. 表22.11.java 插件 - Clean 的属性 任务属性 类型 默认值 dir File buildDir

  • 问题内容: 如何删除Java中文件的内容? 问题答案: 这个怎么样:

  • 清除缓存文件clear 如果需要清除应用的缓存文件,可以使用下面的命令: php think clear 不带任何参数调用clear命令的话,会清除runtime目录(包括模板缓存、日志文件及其子目录)下面的所有的文件,但会保留目录。 如果需要清除某个指定目录下面的文件,可以使用: php think clear --path d:\www\tp5\runtime\log\ V5.1.10+版本开