java使用BufferedInputStream和BufferedOutputStream实现文件复制
import java.io.*;
public class IODemo {
public static void main(String[] args) {
String src = ""; //源文件路径
String dest = ""; //目标文件路径
long start = System.currentTimeMillis();
copyFile(src,dest);
long end = System.currentTimeMillis();
System.out.println(end - start); //查看复制所需时间
}
/**
* 利用字节流复制文件方法
* @param src 源文件路径
* @param dest 目标文件路径
*/
public static void copyFile(String src, String dest){
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(dest))
){
byte[] buffer = new byte[1024]; //数组大小可根据文件大小设置
int len = -1;
while ((len = bis.read(buffer)) != -1){ //读到文件末尾则返回-1
bos.write(buffer,0,len);
}
bos.flush();
}catch (IOException e){
e.getStackTrace();
}
}
}
其中byte[]数组的大小可根据文件的大小自定义,try-with-resource语法是JDK7及以后版本才有的,可以自动关闭资源,不过只有实现了Closeable接口的类才能使用该语法。