码迷,mamicode.com
首页 > 其他好文 > 详细

NIO(四)

时间:2018-11-30 00:40:11      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:dem   rgs   内存映射   string   channel   map   bsp   内存映射文件   system   

使用直接缓冲区完成文件的复制(内存映射文件)

package com.cppdy.nio;

import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileChannel.MapMode;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;

//使用直接缓冲区完成文件的复制(内存映射文件)
public class NIOBufferDemo2 {

    public static void main(String[] args) throws Exception {

        //直接缓冲区
        FileChannel inChannel = FileChannel.open(Paths.get("F:\\cppdy\\1.jpg"), StandardOpenOption.READ);
        FileChannel outChannel = FileChannel.open(Paths.get("F:\\cppdy\\2.jpg"), StandardOpenOption.READ,StandardOpenOption.WRITE,StandardOpenOption.CREATE);
        //缓冲区
        MappedByteBuffer inMap = inChannel.map(MapMode.READ_ONLY, 0, inChannel.size());
        MappedByteBuffer outMap = outChannel.map(MapMode.READ_WRITE, 0, inChannel.size());
    
        //直接对缓冲区进行数据读写操作
        byte[] bytes=new byte[inMap.limit()];
        
        inMap.get(bytes);
        outMap.put(bytes);
        outMap.clear();
        System.out.println("复制完毕");
    }

}

 

NIO(四)

标签:dem   rgs   内存映射   string   channel   map   bsp   内存映射文件   system   

原文地址:https://www.cnblogs.com/cppdy/p/10041693.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!