繁体   English   中英

从分隔文件中删除第一行

[英]Remove first line from delimited file

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

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

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

不要删除它,只是read-and-ignore

如果您必须准备文件,因为文件处理单元无法处理第一行不正确的文件,那么您必须读取并重写它。 没有可用的 I/O 操作可以从文件系统中的文件中删除内容。

使用readLine()逐行读取,只需省略第一行并在处理中考虑其他行

感谢您的投入。 根据相同的情况,我想出了一个从分隔的 pipe 文件中删除第一行的解决方案。

下面提到的是一个代码片段

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);

您可以使用BufferedReader并使用BufferedReader.readLine()在处理之前“删除”第一行。 从这里您可以继续处理行的 rest 或将它们存储到文件中以供以后处理。 后一种选择可能不是您可用的最有效的选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM