0

txt ファイルから 1 行を削除する必要があり、この行の位置は既にわかっています。コンテンツ全体を読み取って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 に答える