您的位置:首页 > 编程语言 > Java开发

使用NIO读取文件 Java实现案例

2016-11-07 11:11 501 查看
package com.nio;

import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class NioDemo {
public static void main(String[] args) throws IOException {
//获取文件
RandomAccessFile rfile = new RandomAccessFile("E://sys_category.sql", "rw");
//获取文件通道
FileChannel channel =  rfile.getChannel();
//设置缓冲区
ByteBuffer buff = ByteBuffer.allocate(1024);
//读取缓冲区的数据
int data = channel.read(buff);
while(data != -1 ){
//通过flip()方法将Buffer从写模式切换到读模式。在读模式下,可以读取之前写入到buffer的所有数据。
buff.flip();

while(buff.hasRemaining()){
System.out.print((char)buff.get());
}
/**
* 有两种方式能清空缓冲区:调用clear()或compact()方法。
* clear()方法会清空整个缓冲区。compact()方法只会清除已经读过的数据。
* 任何未读的数据都被移到缓冲区的起始处,新写入的数据将放到缓冲区未读数据的后面。
*/
buff.clear();
data = channel.read(buff);
}
rfile.close();

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: