JavaNIO实现文件复制

来源:互联网 发布:诺曼鲍威尔体测数据 编辑:程序博客网 时间:2024/06/08 16:43
  • NIO主要内容有Buffer、Channel、Charset及实现异步非阻塞IO的selector
  • 这里通过使用IO流的getChannel()方法获取Channel,然后将文件内容映射到内存中获得Buffer 再将Buffer中的内容写入新的文件
package com.mark.learn.newio;import java.io.*;import java.nio.MappedByteBuffer;import java.nio.channels.FileChannel;/** * Created by Mark on 2017/8/8. */public class Splendid {    public static void main(String[] args) {        //测试复制图片        String src="C:\\Users\\Mark\\Pictures\\Camera Roll\\na5.jpg";        String des="d:\\na5.jpg";        try {            copyFileUseNIO(src,des);        } catch (IOException e) {            e.printStackTrace();        }    }    static void copyFileUseNIO(String src, String des) throws IOException {        //IO流获取Channel        FileChannel inChannel = new FileInputStream(src).getChannel();        FileChannel outChannel = new FileOutputStream(des).getChannel();        //将文件映射到内存        MappedByteBuffer buffer = inChannel.map(FileChannel.MapMode.READ_ONLY, 0, new File(src).length());        //写文件        outChannel.write(buffer);        System.out.println("Copy file "+src+"To"+des+"has been successfully complieted.");        inChannel.close();        outChannel.close();    }}
原创粉丝点击