最近在了解 java nio 相关的一些知识,在网上看到了一篇通过 java nio 来按行读取文件的博客,于是为了练手就自己实现了下,关于 java nio 的基础知识这里就不多说了,具体代码实现如下:
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
/**
* java nio实现按行读取文件
* @author zyh
*
*/
public class ReadFileByLineTest {
/**
* 按行读取文件
* @param inCh 读通道
* @param rbuf 读缓冲区
* @param outCh 写通道
* @param wbuf 写缓冲区
* @param encode 编码
*/
public static void readByLine(FileChannel inCh,ByteBuffer rbuf,FileChannel outCh,ByteBuffer wbuf,String encode){
try {
byte[] temp = new byte[0];//用来缓存上次读取剩下的部分
int LF = "\n".getBytes()[0];//换行符
while(inCh.read(rbuf) != -1){
int position = rbuf.position();
byte[] rbyte = new byte[position];