Java NIO

New IO 同步非阻塞 IO,是传统 IO(BIO) 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。

Path接口:表示的是一个目录名序列,其后还可以跟着一个文件名,路径中第一个部件是根部件时就是绝对路径,例如/或者D:\,是否有访问的权限取决于系统

Path path = Paths.get("/etc","1.mov");

文件的读写NIO示例:

FileChannel fcIn = new FileInputStream(new File("文件来源地址")).getChannel();
FileChannel fcOut = new FileOutputStream(new File("文件目标地址")).getChannel();
ByteBuffer buffer = ByteBuffer.allocateDirect(1024);
while (fcIn.read(buffer) != -1){
    buffer.flip();
    fcOut.write(buffer);
    buffer.clear();
}
fcIn.close();
fcOut.close();

文件映射复制NIO示例:

RandomAccessFile in =  new RandomAccessFile("文件来源地址", "r");
FileChannel fcIn = in.getChannel();
RandomAccessFile out =  new RandomAccessFile("文件目标地址", "rw");
FileChannel fcOut = out.getChannel();
long size = fcIn.size();//输入流的字节大小
MappedByteBuffer inBuffer = fcIn.map(FileChannel.MapMode.READ_ONLY, 0, size);
MappedByteBuffer outBuffer = fcOut.map(FileChannel.MapMode.READ_WRITE, 0, size);
for (int i = 0; i < size; i++){
    outBuffer.put(inBuffer.get());
}
fcIn.close();
fcOut.close();
in.close();
out.close();
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值