我需要从 txt 文件中删除一行,并且我已经知道这一行的位置。我知道如何替换读取整个内容的 txt 文件中的数据,但我想从特定位置删除行。谢谢你。
BufferedReader br = new BufferedReader(new FileReader("data/data/"+ PACKAGE_NAME +"/myFile.txt"));
//delete Line on position 2 (as example)
br.close();
您可以从第一行读取所有行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 行。
通过 jni,使用
open
mmap
memcpy
munmap
ftruncate
close