美文网首页
java大文件复制:FileChannel

java大文件复制:FileChannel

作者: 田大娃的辣条 | 来源:发表于2018-08-01 17:45 被阅读0次

public static void  copyFile(String source, String target)throws Exception {

source = source.replace("\\", "/");

target = target.replace("\\", "/");

File source_file =new File(source);

File target_file =new File(target);

FileChannel in =null;

FileChannel out =null;

if (!source_file.exists() || !source_file.isFile()) {

throw new IllegalArgumentException(source_file +"文件不存在!");

}

File parent = target_file.getParentFile();

// 创建目标文件路径文件夹

if (!parent.exists()) {

parent.mkdirs();

}

// 判断目标文件是否存在

if (target_file.exists()) {

target_file.delete();

}

// 创建目标文件

if (!target_file.exists()) {

target_file.createNewFile();

}

FileInputStream inStream =null;

FileOutputStream outStream =null;

try {

inStream =new FileInputStream(source_file);

    outStream =new FileOutputStream(target_file);

    in = inStream.getChannel();

    out = outStream.getChannel();

    in.transferTo(0, in.size(), out);

}catch (IOException e) {

e.printStackTrace();

}finally {

inStream.close();

    in.close();

    outStream.close();

    out.close();

}

}

//main 测试

public static void main(String[] args) {

long l = System.currentTimeMillis();

    try {

          copyFile("D:\\test.txt", "D:\\tmp.txt");

    }catch (Exception e) {

e.printStackTrace();

    }

System.out.println("------------------");

    System.out.println(System.currentTimeMillis()-l);

}

相关文章

网友评论

      本文标题:java大文件复制:FileChannel

      本文链接:https://www.haomeiwen.com/subject/ahbrvftx.html