2014-04-13 53 views
1

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

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

+1

你看过了:[在文件中查找行并删除](http://stackoverflow.com/questions/1377279/java-find-a-line-in-a-file-and-remove)? – Obicere

+0

如果你真的想使用Apache FileUtils,你可以使用'lineIterator(File)'方法,将这些行添加到'Collection ',删除'ith'行,然后使用'writeLines(File,Collection )'功能。 – Obicere

回答

0

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

  • 获取文件
  • 遍历lineIterator的行迭代器,并将其写入到临时文件。
  • 保持当前迭代的索引。如果在上述步骤中,行号与您想要跳过的号码相匹配,请不要将其写入临时文件。
  • 关闭这两个文件(处理情况,如果你有例外情况,最后也可以使用)
  • 删除旧文件。
  • 临时文件重命名懒洋洋地向新的文件

仅供参考,迭代器加载到内存中,并降至参考以往线被称为未来的时候。 [@Obicere:另外,我不能直接评论这个问题,但将所有行加载到内存中并不是一个好主意。 ]