天天看點

java通過nio拷貝檔案

之前用nio的方式寫過一個拷貝複制檔案的方法,比傳統的io操作快一些,現在分享一下:

public static void fileChannelCopy(File s, File t) {

        FileInputStream fi = null;

        FileOutputStream fo = null;

        FileChannel in = null;

        FileChannel out = null;

        try {

            fi = new FileInputStream(s);

            fo = new FileOutputStream(t);

            in = fi.getChannel();//得到對應的檔案通道

            out = fo.getChannel();//得到對應的檔案通道

            in.transferTo(0, in.size(), out);//連接配接兩個通道,并且從in通道讀取,然後寫入out通道

        } catch (IOException e) {

            e.printStackTrace();

        } finally {

            try {

                fi.close();

                in.close();

                fo.close();

                out.close();

            } catch (IOException e) {

                e.printStackTrace();

            }

        }

    }