在Java中写入文本文件的中间

时间:2011-10-11 16:18:13

标签: java text file-io text-files

在Java中写入文本文件中间的最佳方法是什么?

我知道无法将整个文件读取到内存然后再写回来。但解析实际上是我的弱技能之一,与文件I / O相关的众多类令人困惑(选择File,FileWriter,FileOutputStream,BufferedWriter ...... AHHHHH !!)

假设我有一个这样的文本文件:

  

快速的棕色狐狸跳过懒狗。懒狗嘲笑   傻傻的狐狸。狗的名字是Puff。

假设我想在“狗”面前加上形容词“可爱”,结果如下:

  

快速的棕色狐狸跳过懒惰的可爱的狗。懒惰的可爱的狗嘲笑   傻傻的狐狸。 可爱狗的名字是Puff。

我想我需要一个支持插入的数据结构,所以char数组可能不起作用。

2 个答案:

答案 0 :(得分:2)

由于您正在处理文本文件,我认为最简单的方法是使用Scanner

您可以使用hasNextLine()nextLine()一次将一行读入String变量,进行转换,然后打印出结果(例如,输入{{ 3}})。

要使其正常工作,您需要先将结果写入临时文件,然后删除输入文件并重命名临时文件,使其与输入文件的名称相同。

答案 1 :(得分:0)

您可以使用BufferedReader :: readLine()读取文件中的每一行,然后使用String :: replaceAll(String regex,String replacement)来查找和追加文本。

就依赖性而言:BufferedReader< - FileReader< - File

我建议你查看Java 5 API(对于Java 6,有一个类似的,如果你更喜欢它的话)。