JAVA通过I/O流复制文件

时间:2021-04-11 20:58:52

JAVA通过I/O流复制文件

 

本文是对字节流操作,可以多音频视频文件进行操作,亲测有效。

个人感觉这个东西就是靠记的, 没什么好解释的,,,,

  

 1 import java.io.File;
2 import java.io.FileInputStream;
3 import java.io.FileNotFoundException;
4 import java.io.FileOutputStream;
5 import java.io.IOException;
6
7
8 public class CopyMove {
9
10 public static void main(String[] args){
11
12 //时间
13 long starttime = 0;
14 long finishtime = 0;
15 Calendar calendar = null;
16
17 /* String oldPath = "D:/test/gktgd.mp4";
18 String newPath = "D:/test/new4.mp4";*/
19 String oldPath = "D:/test/fff.flv";
20 String newPath = "D:/test/ff.flv";
21
22 File oldFile = new File(oldPath);
23 File newFile = new File(newPath);
24       
25 //若文件不存在则创建
26      if(!newFile.exists()){
27 try {
28 newFile.createNewFile();
29 } catch (IOException e) {
30 // TODO Auto-generated catch block
31 e.printStackTrace();
32 }
33 }
34
35 FileInputStream fIS = null;
36 FileOutputStream fOS = null;
37
38      //声明用于传递字节的byte 数组大小要是2的整数倍
39 byte[] ttStream = new byte[4096];
40
41 int len = 0;
42
43 try {
44 fIS = new FileInputStream(oldFile);
45 fOS = new FileOutputStream(newFile);
46
47         //获取开始时间 
48 starttime = System.currentTimeMillis();
49
50 System.out.println(starttime);
51 len = fIS.read(ttStream);
52        //若len为-1 证明读取完,若不为-1 则为读取的字节数 
53 while((len)!=-1){
54           //将读出的字节写入文件中
55 fOS.write(ttStream, 0, len);
56            //再次读取 
57 len=fIS.read(ttStream);
58 }
59        //获得结束时间 
60 finishtime = System.currentTimeMillis();
61 System.out.println(finishtime);
62 System.out.println("时间间隔为:" +(finishtime-starttime));
63 } catch (FileNotFoundException e) {
64 // TODO Auto-generated catch block
65 e.printStackTrace();
66 } catch (IOException e) {
67 // TODO Auto-generated catch block
68 e.printStackTrace();
69 } finally {
70 try {
71          //按照先使用后关闭的原则关闭 
72 fOS.close();
73 fIS.close();
74 } catch (IOException e) {
75 // TODO Auto-generated catch block
76 e.printStackTrace();
77 }
78 }
79 }
80 }