import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 字节流复制文件
* 采用数组缓冲提高效率
* FileInputStream 读取字节数组;FileOutputStream 写字节数组
*/
public class Copy_1 {
public static void main(String[] args){
long s=System.currentTimeMillis();
FileInputStream fis=null;
FileOutputStream fos=null;
try {
fis=new FileInputStream("d:\\demo\\a.txt");
fos=new FileOutputStream("d:\\demo\\b.txt");
//定义字节数组,缓冲
byte[] bytes=new byte[1024];
//读取数组,写入数组
int len=0;
while((len=fis.read(bytes))!=-1){
fos.write(bytes,0,len);
}
} catch (IOException ex) {
System.out.println(ex);
throw new RuntimeException("文件复制失败");
}finally{
try {
if(fos!=null)
fos.close();
} catch (IOException ex) {
throw new RuntimeException("释放资源失败");
}finally{
try {
if(fis!=null)
fis.close();
} catch (IOException ex) {
throw new RuntimeException("释放资源失败");
}
}
}
long e=System.currentTimeMillis();
System.out.println();
}
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 字节流复制文件
* 采用数组缓冲提高效率
* FileInputStream 读取字节数组;FileOutputStream 写字节数组
*/
public class Copy_1 {
public static void main(String[] args){
long s=System.currentTimeMillis();
FileInputStream fis=null;
FileOutputStream fos=null;
try {
fis=new FileInputStream("d:\\demo\\a.txt");
fos=new FileOutputStream("d:\\demo\\b.txt");
//定义字节数组,缓冲
byte[] bytes=new byte[1024];
//读取数组,写入数组
int len=0;
while((len=fis.read(bytes))!=-1){
fos.write(bytes,0,len);
}
} catch (IOException ex) {
System.out.println(ex);
throw new RuntimeException("文件复制失败");
}finally{
try {
if(fos!=null)
fos.close();
} catch (IOException ex) {
throw new RuntimeException("释放资源失败");
}finally{
try {
if(fis!=null)
fis.close();
} catch (IOException ex) {
throw new RuntimeException("释放资源失败");
}
}
}
long e=System.currentTimeMillis();
System.out.println();
}
}
字节流和字节复制的速度对比:
一个20M文件:字节流70mm,字节40000mm