我正在尝试从java中的文本文件中删除一行,我已经阅读过,似乎有几个解决方案:删除文件并重新创建它并写入它,或者写入临时文件并重命名它。似乎两种解决方案都涉及关闭流,我可能在这里遗漏了一些简单的东西,但是在关闭文件后如何使用带有文件的编写器,我可以做些什么来在重新创建或重命名后立即启动并运行新的编写器文件以便我可以修改新文件?
例如:
我有一个文件movies.txt,我将该文件中的所有行保存到变量中,关闭movies.txt上的流,删除movies.txt并创建movies.txt,如何写入新电影。我关闭流后的txt?
或者如果我重命名文件:
我有movies.txt,我创建temp.txt并将所有内容从movies.txt写入temp.txt,关闭movies.txt上的流,将temp.txt重命名为movies.txt,如何写入movies.txt流是否关闭?
最佳答案
您的临时文件方法可能更容易。 假设您要从文件中删除第 n 行,以下是您要遵循的步骤。
- 为目标文件创建阅读器
- 创建临时文件的编写器
- 从源文件中读取每一行并写入临时文件<---执行n-1次
- 跳过第 n 行
- 从源文件中读取每一行并写入临时文件,直到源文件末尾。
- 关闭源文件读取器和临时文件写入器。
- 删除源文件并将临时文件重命名为源文件的名称。
关于java - 重新创建文件并写入新内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5149829/