在Java中写入文本文件中间的最佳方法是什么?
我知道无法将整个文件读取到内存然后再写回来。但解析实际上是我的弱技能之一,与文件I / O相关的众多类令人困惑(选择File,FileWriter,FileOutputStream,BufferedWriter ...... AHHHHH !!)
假设我有一个这样的文本文件:
快速的棕色狐狸跳过懒狗。懒狗嘲笑 傻傻的狐狸。狗的名字是Puff。
假设我想在“狗”面前加上形容词“可爱”,结果如下:
快速的棕色狐狸跳过懒惰的可爱的狗。懒惰的可爱的狗嘲笑 傻傻的狐狸。 可爱狗的名字是Puff。
我想我需要一个支持插入的数据结构,所以char数组可能不起作用。
答案 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,有一个类似的,如果你更喜欢它的话)。