java 输出流 逐行输出比较_Java输入输出流复制文件所用时间对比

废话不多说,关键代码如下所述:

package com.edu.xynu;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

public class IOUnitCopy {

//按字节

public static void copyByByte(File srcFile,File destFile) throws IOException{

FileInputStream fis=new FileInputStream(srcFile);

FileOutputStream fos=new FileOutputStream(destFile);

int i;

while((i=fis.read())!=-1){

fos.write(i);

}

fis.close();

fos.close();

}

//按字节数组

public static void copyByByteArray(File srcFile,File destFile) throws IOException{

FileInputStream fis=new FileInputStream(srcFile);

FileOutputStream fos=new FileOutputStream(destFile);

byte []buf=new byte[10*1024];

int i;

while((i=fis.read(buf, 0, buf.length))!=-1){

fos.write(buf, 0, i);

}

fis.close();

fos.close();

}

//字节缓冲流

public static void copyByBuff(File srcFile,File destFile) throws IOException{

BufferedInputStream bis=new BufferedInputStream(new FileInputStream(srcFile));

BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(destFile));

int i;

while((i=bis.read())!=-1){

bos.write(i);

}

bos.flush();

bis.close();

bos.close();

}

//字节数组批量读取 缓冲输出流写入

public static void copyByBuffArray(File srcFile,File destFile) throws IOException{

FileInputStream bis=new FileInputStream(srcFile);

BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(destFile));

byte [] buf=new byte[10*1024];

int len;

while((len=bis.read(buf,0,buf.length))!=-1){

bos.write(buf,0,len);

}

bos.flush();

bis.close();

bos.close();

}

}

package com.edu.xynu;

import java.io.File;

import java.io.IOException;

public class IOUnitsCopyTest {

public static void main(String[] args) {

// TODO Auto-generated method stub

try {

long start=System.currentTimeMillis();

// IOUnitCopy.copyByByte(new File("c:\\1.mp3"), new File(

// "c:\\2.mp3"));//90713ms

// IOUnitCopy.copyByByteArray(new File("c:\\1.mp3"), new File(

// "c:\\3.mp3"));//41ms

// IOUnitCopy.copyByBuff(new File("c:\\1.mp3"), new File(

// "c:\\4.mp3"));//556ms

// IOUnitCopy.copyByByteArray(new File("c:\\1.mp3"), new File(

// "c:\\5.mp3"));//30ms

long end=System.currentTimeMillis();

System.out.println(end-start);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

测试文件是

32e29b8ebf9be6f94ab685a5c319e0cd.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值