0

我需要从 txt 文件中删除一行,并且我已经知道这一行的位置。我知道如何替换读取整个内容的 txt 文件中的数据,但我想从特定位置删除行。谢谢你。

BufferedReader br = new BufferedReader(new FileReader("data/data/"+ PACKAGE_NAME +"/myFile.txt"));

//delete Line on position 2 (as example)


br.close();
4

2 回答 2

3

您可以从第一行读取所有行File并将它们存储在List<String>. 然后您可以删除索引并写回所有行。也许它可能看起来像:

public void removeLine(final File file, final int lineIndex) throws IOException{
    final List<String> lines = new LinkedList<>();
    final Scanner reader = new Scanner(new FileInputStream(file), "UTF-8");
    while(reader.hasNextLine())
        lines.add(reader.nextLine());
    reader.close();
    assert lineIndex >= 0 && lineIndex <= lines.size() - 1;
    lines.remove(lineIndex);
    final BufferedWriter writer = new BufferedWriter(new FileWriter(file, false));
    for(final String line : lines)
        writer.write(line);
    writer.flush();
    writer.close();
}

用法:

public static void main(String args[]) throws IOException{
    final File file = ...;
    removeLine(file, 2);
}

上面的代码将删除第 3 行。

于 2013-11-04T01:29:39.013 回答
-2

通过 jni,使用

  1. open
  2. mmap
  3. memcpy
  4. munmap
  5. ftruncate
  6. close
于 2013-11-04T01:25:41.787 回答