黑马程序员技术交流社区
标题:
IO流复制文件的问题
[打印本页]
作者:
wangjinyu501
时间:
2013-3-23 11:36
标题:
IO流复制文件的问题
我用下面这个代码复制文件,但是为什么每次复制相同文件所使用的时间都不一样呢?
/**
*
*/
package com.debug.java;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* @author wangpeng
*
*/
public class CopyMp3 {
/**
* @param args
*/
public static void main(String[] args) {
long begin=System.currentTimeMillis();
copyMp3File();
long end=System.currentTimeMillis();
long c=end-begin;
System.out.println("复制耗时"+c+"毫秒");
}
public static void copyMp3File(){
FileInputStream fis=null;
FileOutputStream fos=null;
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
try {
fis=new FileInputStream("F://test/Up.mp3");
bis=new BufferedInputStream(fis);
fos=new FileOutputStream("F://test/down.mp3");
bos=new BufferedOutputStream(fos);
byte[] bt=new byte[1024];
int len=0;
try {
while((len=bis.read(bt))!=-1){
bos.write(bt, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally{
try {
fis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
复制代码
作者:
谢洋
时间:
2013-3-23 12:20
跟你你每次做同一件事所用的时间不同,的道理差不多吧
作者:
VOIDMAIN
时间:
2013-3-23 12:25
本帖最后由 VOIDMAIN 于 2013-3-23 12:26 编辑
这个和机器的性能有关啊,说到底程序执行还是依赖于硬件,而电脑在每时每刻处理任务(有很多后台的处理任务)的情况不一样,分配给你这个程序执行的时间也不可能一样。平时有很多这样的例子啊,比如在硬盘拷贝大数据的时候,你打开文档的速度都会变慢,一样的道理。
作者:
彭波
时间:
2013-3-23 13:57
你看过多线程的那节视频没?如果你看了,相信就会有理解,windows系统是多任务的,电脑看上去同时执行多个任务,其实一个时间片内值处理一个,有时候抢到资源多了,就会多执行一会,抢到资源少了,就少执行一会,所以时间是变化,你电脑同时运行东西多了,就相对来说慢些
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2