JAVA通过I/O流复制文件

时间:2023-03-08 22:09:17
JAVA通过I/O流复制文件

JAVA通过I/O流复制文件

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

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

 import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; public class CopyMove { public static void main(String[] args){ //时间
long starttime = 0;
long finishtime = 0;
Calendar calendar = null; /* String oldPath = "D:/test/gktgd.mp4";
String newPath = "D:/test/new4.mp4";*/
String oldPath = "D:/test/fff.flv";
String newPath = "D:/test/ff.flv"; File oldFile = new File(oldPath);
File newFile = new File(newPath);
      
//若文件不存在则创建
     if(!newFile.exists()){
try {
newFile.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} FileInputStream fIS = null;
FileOutputStream fOS = null;      //声明用于传递字节的byte 数组大小要是2的整数倍
byte[] ttStream = new byte[4096]; int len = 0; try {
fIS = new FileInputStream(oldFile);
fOS = new FileOutputStream(newFile);         //获取开始时间 
starttime = System.currentTimeMillis(); System.out.println(starttime);
len = fIS.read(ttStream);
       //若len为-1 证明读取完,若不为-1 则为读取的字节数 
while((len)!=-1){
          //将读出的字节写入文件中
fOS.write(ttStream, 0, len);
           //再次读取 
len=fIS.read(ttStream);
}
       //获得结束时间 
finishtime = System.currentTimeMillis();
System.out.println(finishtime);
System.out.println("时间间隔为:" +(finishtime-starttime));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
         //按照先使用后关闭的原则关闭 
fOS.close();
fIS.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}