package cn.csdn.io;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
/**
* 文件的拷贝
* @author Administrator
*
*/
public class StreamDemo {
public static void main(String[] args) throws Exception {
//首先创建一个读取数据
FileInputStream in=new FileInputStream("MyDirDemo\\你不是时间不够,而是时间太多.mp3");
//创建一个字节输出流,用来接收拷贝的数据
FileOutputStream out=new FileOutputStream("MyDir\\你不是时间不够,而是时间太多.mp3");
//开始读取数据
int length=0;//用来记录字节
//记录时间
long startTime=System.currentTimeMillis();
while((length=in.read())!=-1) {//如果字节不等于-1就继续循环
//开始输出数据
out.write(length);
}
long endTime=System.currentTimeMillis();
System.out.println("拷贝花费的时间:"+(endTime-startTime)/1000+"秒");
//关闭
in.close();
out.close();
}
}
为了提高效率我们使用了字节缓冲区
package cn.csdn.io;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
/**
* 文件的拷贝(使用字节缓冲区)
* @author Administrator
*
*/
public class StreamDemo {
public static void main(String[] args) throws Exception {
//首先创建一个读取数据
FileInputStream in=new FileInputStream("MyDirDemo\\你不是时间不够,而是时间太多.mp3");
//创建一个字节输出流,用来接收拷贝的数据
FileOutputStream out=new FileOutputStream("MyDir\\你不是时间不够,而是时间太多.mp3");
//开始读取数据
byte [] b=new byte[1024];//建立字节缓冲区
int length;//用来记录字节 长度
//记录时间
long startTime=System.currentTimeMillis();
while((length=in.read(b))!=-1) {//如果字节不等于-1就继续循环
//开始输出数据
out.write(b, 0, length);
}
long endTime=System.currentTimeMillis();
System.out.println("拷贝花费的时间:"+(endTime-startTime)/1000+"秒");
//关闭
in.close();
out.close();
}
}