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

javaNio Filechannel

2018-03-30 10:38 417 查看
例子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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JAVA NIO FileChannel