package io;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
/**
* BufferedInputStream读文件
*
*
*/
public class BuferedInputStreamTest {
public static void main(String[] args) {
try {
double startTime = System.currentTimeMillis();
InputStream ins = new FileInputStream("D:\\Resource.9.5.9.28650\\Themes\\Default.rdb");
//BufferedInputStream构造器参数类型为:InputStream
BufferedInputStream bis =new BufferedInputStream(ins);
byte []bytes = new byte[1024*1024];// 每次读取1mb
int len = 0;
while((len = bis.read(bytes))!=-1){//每次读满一个数组就输出
//read(Byte[])返回值为int类型,当为-1时,表示文件读完
System.out.println(bytes);
}
double endTime = System.currentTimeMillis();
System.out.println("用时:"+(endTime-startTime+"ms"));
bis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
====================================================================
package io;
import java.io.*;
/**
* 利用BufferedOutputStream复制文件(先读再写)
*
*
*/
public class BufferedOutputStreamTest {
public static void main(String[] args) {
try {
double stratTime = System.currentTimeMillis();
InputStream ins = new FileInputStream("D:\\Resource.9.5.9.28650\\Themes\\Default.rdb");
BufferedInputStream bis = new BufferedInputStream(ins);
OutputStream ops = new FileOutputStream("E:\\Resource.9.5.9.28650\\Themes\\Default.rdb");
BufferedOutputStream bos = new java.io.BufferedOutputStream(ops);
byte [] bytes = new byte[1024*1024];
int len = 0;
while((len=bis.read(bytes))!=-1){//将读的数据赋给数组
bos.write(bytes,0,len);//每次读满一个数组就写一个数组
//write(byte[],index,length)index表示从数组的第几个位置写,length表示写入多少个
}
double endTime = System.currentTimeMillis();
System.out.println("用时:"+(endTime-stratTime)+"ms");
} catch (Exception e) {
e.printStackTrace();
}
}
}