【问题标题】:Java FileUtils: remove specific line from fileJava FileUtils:从文件中删除特定行
【发布时间】:2023-03-23 21:50:02
【问题描述】:

如何从具有org.apache.commons.io.FileUtils 类的文本文件中删除特定行(按索引)?

要删除的行的索引已经知道他,所以我需要一些从文件中删除特定行的方法。

【问题讨论】:

  • 如果你真的想使用 Apache FileUtils,你可以使用 lineIterator(File) 方法,将这些行添加到 Collection<String>,删除 ith 行,然后使用 writeLines(File, Collection<?>) 函数.

标签: java fileutils


【解决方案1】:

您可以使用同一个库的 lineIterator 函数。

  • 获取文件的行迭代器
  • 遍历 lineIterator 并将其写入临时文件。
  • 维护当前迭代的索引。如果在上述步骤中,行号与您要跳过的行号匹配,请不要将其写入临时文件。
  • 关闭这两个文件(如果出现异常,请处理这种情况。您可能还想使用 finally)
  • 删除旧文件。
  • 将临时文件重命名为新文件

fyi,Iterator 会延迟加载到内存中,并在调用 next 时删除对上一行的引用。 [@Obicere:另外,我不能直接评论这个问题,但是将所有行加载到内存中并不是一个好主意。 ]

【讨论】:

    猜你喜欢
    • 2011-08-13
    • 1970-01-01
    • 2018-08-31
    • 2018-10-08
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    相关资源
    最近更新 更多