参考我以前的帖子
Remove first line from a delimited file
我能够处理较小的文件并删除第一行....但是由于我正在读取整个文件然后再将其写回来,因此存在大量文件存在内存问题。
任何人都可以建议更好地替代这个问题。
感谢Advance。
的Vivek
答案 0 :(得分:1)
您必须逐行阅读文件并将其写入:
BufferedReader reader = new BufferedReader(new FileReader("foo.txt"));
PrintWriter writer = new PrintWriter(new FileWriter("_foo.txt"));
String line;
boolean firstLine = true;
while ( (line = reader.readLine()) !=null) {
if (!firstLine) {
writer.println(line);
firstLine = false;
}
}
答案 1 :(得分:0)
为避免重写整个文件以删除一行,您可以维护文件“start”的索引。此索引是您认为开始的位置以及从哪里开始读取文件的位置。定期例如每晚一次,你可以重写文件,这样“开始”就是文件实际开始的地方。
此“开始”位置可以存储在另一个时间或现有文件的开头。
这意味着您可以逐步“删除”文件的所有行而无需重写它。