标签:
package copy;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.management.RuntimeErrorException;
public class CopyByte {
public static void main(String[] args) {
long start=System.currentTimeMillis();
//FileStreamByteCopy(); //共消耗382毫秒
//FileStreamCopy(); //共消耗265929毫秒
BufferedStreamByteCopy(); //共消耗210毫秒
//BufferedStreamCopy(); //共消耗1348毫秒
long end=System.currentTimeMillis();
System.out.println("复制成功,共消耗"+(end-start)+"毫秒");
}
//缓存区字节数组复制
//共消耗210毫秒
public static void BufferedStreamByteCopy() {
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
try {
bis=new BufferedInputStream(new FileInputStream("d:\\2.zip"));
bos=new BufferedOutputStream(new FileOutputStream("h:\\2.zip"));
byte[] bytes=new byte[1024];
int len=0;
while ((len=bis.read(bytes))!=-1) {
bos.write(bytes,0,len);
}
} catch (Exception e) {
// TODO: handle exception
throw new RuntimeException("复制失败");
}finally{
try {
if (bos!=null) {
bos.close();
}
} catch (Exception e2) {
// TODO: handle exception
throw new RuntimeException("资源释放失败");
}finally{
try {
if (bis!=null) {
bis.close();
}
} catch (Exception e3) {
// TODO: handle exception
throw new RuntimeException("资源释放失败");
}
}
}
}
//缓存区字节复制
//共消耗1348毫秒
public static void BufferedStreamCopy() {
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
try {
bis=new BufferedInputStream(new FileInputStream("d:\\1.avi"));
bos=new BufferedOutputStream(new FileOutputStream("e:\\4.avi"));
int len=0;
while ((len=bis.read())!=-1) {
bos.write(len);
}
} catch (Exception e) {
// TODO: handle exception
throw new RuntimeException("复制失败");
}finally{
try {
if (bos!=null) {
bos.close();
}
} catch (Exception e2) {
// TODO: handle exception
throw new RuntimeException("资源释放失败");
}finally{
try {
if (bis!=null) {
bis.close();
}
} catch (Exception e3) {
// TODO: handle exception
throw new RuntimeException("资源释放失败");
}
}
}
}
//字节流数组复制
//共消耗382毫秒
public static void FileStreamByteCopy() {
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream("d:\\1.avi");
fos = new FileOutputStream("e:\\1.avi");
//定义字节数组,长度1024整数倍
byte[] bytes = new byte[1024];
//定义变量,保存read方法返回值
int len = 0 ;
//开始循环读取,读取一个字节数组,写一个字节数,0,有效个数
while((len = fis.read(bytes))!=-1){
fos.write(bytes, 0, len);
}
}catch(IOException 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("关闭资源失败");
}
}
}
}
//字节流复制
//共消耗265929毫秒
public static void FileStreamCopy() {
FileInputStream fis=null;
FileOutputStream fos=null;
try {
fis=new FileInputStream("D:\\1.avi");
fos=new FileOutputStream("e:\\2.avi");
int len=0;
while ((len=fis.read())!=-1) {
fos.write(len);
}
} catch (Exception e) {
// TODO: handle exception
throw new RuntimeException("复制失败");
}finally{
try {
if (fos!=null) {
fos.close();
}
} catch (Exception e2) {
// TODO: handle exception
throw new RuntimeException("资源释放失败");
}finally{
try {
if (fis!=null) {
fis.close();
}
} catch (Exception e3) {
// TODO: handle exception
throw new RuntimeException("资源释放失败");
}
}
}
}
}
标签:
原文地址:http://www.cnblogs.com/gaojiubing/p/4598865.html