javaNio Filechannel

例子

import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.AsynchronousFileChannel;
import java.nio.channels.FileChannel;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.concurrent.Future;


public class Pathss {
	public static void main(String[] args) throws IOException {
		RandomAccessFile input=new RandomAccessFile("E://output.txt","rw");//一定要用RandomAccessFile 不然有些通道的功能无法实现
		FileChannel chan=input.getChannel();//获取通道
		ByteBuffer buff=ByteBuffer.allocate((int)chan.size());//设置ByteBuffer的capacity(内存最大值)为文件的字节长度
		buff.clear();//清空缓存,切换成读模式(capacity和limit值一样) 
		chan.read(buff);//读取  position值从0开始慢慢递增
		byte[] bytes=new byte[buff.limit()];//长度为position的值一样
		buff.flip();//切换成写模式 position变为0 capacity不变 limit变为读模式时position最后的位置
	    buff.get(bytes);//写入byte数组中 ,position慢慢递增
	    System.out.println(new String(bytes));
	    input.close();
	}
}

具体的limit position capacity含义请到这里看。http://ifeve.com/buffers/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gentle+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值