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

6 篇文章 0 订阅
3 篇文章 0 订阅
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();
		
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值