Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重新创建文件并写入新内容_Java_File - Fatal编程技术网

Java 重新创建文件并写入新内容

Java 重新创建文件并写入新内容,java,file,Java,File,我试图在java中删除文本文件中的一行,我已经读过了,似乎有两种解决方案:删除文件并重新创建并写入,或者写入临时文件并重命名。似乎这两种解决方案都涉及关闭流,我可能在这里遗漏了一些简单的东西,但是在我关闭文件后,如何使用文件的编写器,在重新创建或重命名文件后,是否可以立即启动并运行新的编写器,以便修改新文件 例如: 我有一个文件movies.txt,我将该文件中的所有行保存到一个变量中,关闭movies.txt上的流,删除movies.txt并创建movies.txt,在关闭流后如何写入new

我试图在java中删除文本文件中的一行,我已经读过了,似乎有两种解决方案:删除文件并重新创建并写入,或者写入临时文件并重命名。似乎这两种解决方案都涉及关闭流,我可能在这里遗漏了一些简单的东西,但是在我关闭文件后,如何使用文件的编写器,在重新创建或重命名文件后,是否可以立即启动并运行新的编写器,以便修改新文件

例如:

我有一个文件movies.txt,我将该文件中的所有行保存到一个变量中,关闭movies.txt上的流,删除movies.txt并创建movies.txt,在关闭流后如何写入new movies.txt

或者如果我重命名该文件:


我有movies.txt,我创建temp.txt并将movies.txt中的所有内容写入temp.txt,关闭movies.txt上的流,将temp.txt重命名为movies.txt,如果流被关闭,我该如何写入movies.txt?

我想你是在想,如果你重新打开文件进行写入,你会删除其当前内容

这通常是正确的,但您也可以在写附加模式下打开文件;例如使用

这将导致输出写入文件的末尾(如果文件已经存在)


(可能还有其他方法可以做到这一点,但这是最简单的方法。)

您的临时文件方法可能更简单。 假设要从文件中删除第n行,以下是要执行的步骤

  • 为目标文件创建读取器
  • 创建临时文件的写入程序

  • 读取源文件中的每一行并写入临时文件我必须在这里缺少一些非常简单的内容,我如何重新打开流?我看不到任何方法可以将其重新打开。但重新打开后可能需要倒带。因此,您可以在不关闭流的情况下倒带流,并用新内容覆盖流的内容,但这在Java流中是不可能的。
      FileOutputStream fos = new FileOutputStream("file.txt", true);