码迷,mamicode.com
首页 > 其他好文 > 详细

字节流复制

时间:2015-06-25 00:03:30      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!