从分隔文件中删除第一行

时间:2011-07-15 06:36:15

标签: java file-io filechannel

我有一个可以包含大约数百万条记录的分隔文件,现在我想在进一步处理之前从分隔文件中删除第一行。

第一行的长度是可变的,它根据文件类型而不同。现在我已经对FileChannel和RandomAccessFile进行了读取,这已被建议作为删除第一行的最佳方法。

但我无法弄清楚如何获取第一行的长度并将其删除。

4 个答案:

答案 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()在处理前“删除”第一行。从这里开始,您可以继续处理其余行或将它们存储到文件中以便稍后处理。后一个选项可能不是您可以使用的最有效选项。