读取和写入大文本文件java中的特定行

时间:2016-02-29 03:35:24

标签: java bytebuffer read-write randomaccessfile filechannel

我使用Stream从文件中读取特定行,并借助预先计算的字节位置值I使用FileChannel和ByteBuffer写入大文件中的相同位置。基本上在textFile中编辑一些值。

//读取特定行

Stream<String> lines = Files.lines(Paths.get('PATHTOFILE'));
String text = lines.skip(LINENUMBER).findFirst().get();

//修改文本例如

text.replace("R",r); 

//在操作相同文本后重写到相同位置

RandomAccessFile file = new RandomAccessFile('PATHTOFILE', "rw");
FileChannel channel= file.getChannel();
ByteBuffer buf = ByteBuffer.allocate(50);
buf.put(text)
buf.flip()
channel.position(PRE_CALCULATED_POSITION);
while(buf.hasRemaining)
   channel.write(buf)
channel.close(); buf.clear(); file.close();

我想知道在没有逐行阅读的情况下是否有更清洁或更好的方法来做同样的事情?

由于

0 个答案:

没有答案