我有一个可以包含大约数百万条记录的分隔文件,现在我想在进一步处理之前从分隔文件中删除第一行。
第一行的长度是可变的,它根据文件类型而不同。现在我已经对FileChannel和RandomAccessFile进行了读取,这已被建议作为删除第一行的最佳方法。
但我无法弄清楚如何获取第一行的长度并将其删除。
答案 0 :(得分:4)
请勿删除它,只需读取并忽略。
如果您必须准备该文件,因为文件处理单元无法处理第一行不正确的文件,那么您必须阅读并重写它。没有可用的I / O操作可以从文件系统中的文件中删除内容。
答案 1 :(得分:3)
使用readLine()
逐行阅读,只需省略第一行并考虑其他处理
答案 2 :(得分:2)
感谢您的投入。根据相同的不同,我找到了一个解决方案,从分隔的管道文件中删除第一行。
下面提到的是一个代码段
RandomAccessFile raf = new RandomAccessFile("path to ur delimited file", "rw");
FileChannel fileChannel = raf.getChannel();
raf.readLine();
raf.seek(raf.getFilePointer());
int len = (int) (raf.length() - raf.getFilePointer());
byte[] bytearr = new byte[len];
raf.readFully(bytearr, 0, len);
fileChannel.truncate(0);
raf.write(bytearr,0,len);
答案 3 :(得分:0)
您可以使用BufferedReader
并使用BufferedReader.readLine()
在处理前“删除”第一行。从这里开始,您可以继续处理其余行或将它们存储到文件中以便稍后处理。后一个选项可能不是您可以使用的最有效选项。