【问题标题】:Writing to the middle of a text file in Java在Java中写入文本文件的中间
【发布时间】:2011-10-11 16:18:12
【问题描述】:

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

我知道没有办法绕过将整个文件读取到内存然后将其写回。但是解析确实是我的弱项之一,与文件 I/O 相关的众多类令人困惑(在 File、FileWriter、FileOutputStream、BufferedWriter 之间进行选择......啊啊啊啊!!)

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

敏捷的棕色狐狸跳过了懒惰的狗。懒狗笑了 愚蠢的跳狐。这只狗的名字叫普夫。

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

敏捷的棕色狐狸跳过了懒惰的可爱狗。懒惰的可爱狗笑了 愚蠢的跳狐。 可爱的狗的名字叫Puff。

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

【问题讨论】:

    标签: java text file-io text-files


    【解决方案1】:

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

    您可以使用hasNextLine()nextLine() 一次将一行读入String 变量,进行转换并打印出结果(例如,读入PrintStream)。

    为此,您需要先将结果写入临时文件,然后删除输入文件并重命名临时文件,使其与输入文件具有相同的名称。

    【讨论】:

      【解决方案2】:

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

      在依赖方面:BufferedReader

      我建议您查看Java 5 API(如果您更喜欢的话,Java 6 也有类似的)。

      【讨论】:

        猜你喜欢
        • 2014-09-05
        • 1970-01-01
        • 2022-12-12
        • 2013-06-05
        • 2014-03-15
        • 1970-01-01
        • 1970-01-01
        • 2013-08-05
        • 1970-01-01
        相关资源
        最近更新 更多