1 package com.liu.test;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.FileOutputStream;
6 import java.io.IOException;
7 import java.nio.channels.FileChannel;
8
9 public class testFile {
10
11 public static void main(String[] args) {
12 fileCopy_channel();
13 }
14
15 public static void fileCopy_channel() {
16 FileChannel input = null;
17 FileChannel output = null;
18
19 try {
20 input = new FileInputStream("C:\\Users\\RD-10\\Downloads\\tiles.rar").getChannel();
21 output = new FileOutputStream("D:\\testFile\\tiles.rar").getChannel();
22 output.transferFrom(input, 0, input.size());
23 } catch (Exception e) {
24 e.printStackTrace();
25 } finally {
26 try {
27 if (input != null) {
28 input.close();
29 }
30 if (output != null) {
31 output.close();
32 }
33 } catch (IOException e) {
34 e.printStackTrace();
35 }
36 }
37 }
38 /*
39 * 实现文件的拷贝
40 *
41 * @param srcPathStr 源文件的地址信息
42 *
43 * @param desPathStr 目标文件的地址信息
44 */
45 private static void copyFile(String srcPathStr, String desPathStr) {
46 // 1.获取源文件的名称
47 String newFileName = srcPathStr.substring(srcPathStr.lastIndexOf("/") + 1); // 目标文件地址
48 System.out.println("123"+newFileName);
49 desPathStr = desPathStr + File.separator + newFileName; // 源文件地址
50 System.out.println("1234"+desPathStr);
51
52 try {
53 // 2.创建输入输出流对象
54 FileInputStream fis = new FileInputStream(srcPathStr);
55 FileOutputStream fos = new FileOutputStream(desPathStr);
56
57 // 创建搬运工具
58 byte datas[] = new byte[1024 * 8];
59 // 创建长度
60 int len = 0;
61 // 循环读取数据
62 while ((len = fis.read(datas)) != -1) {
63 fos.write(datas, 0, len);
64 }
65 // 3.释放资源
66 fis.close();
67 fis.close();
68 } catch (Exception e) {
69 System.out.println("错误");
70 }
71 }
72 }