//用Buffered缓冲区读,是高效的,
是这样的,因为,从硬盘直接读取到内存很慢,而从缓冲区读到内存很快.
或许你又会问,不还是要从硬盘读到缓冲区么?不也慢么?是这样的,缓冲区,一次性就从硬盘读取8192个字节,所以....
//还有一种是定义一个字节数组也是高效的,
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class Demo2 {
public static void main(String[] args) throws Exception {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("a.txt")); //创建缓冲输入流对象,并与文件输入流相关联
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("b.txt")); //创建缓冲输出流对象,并与文件输出流相关联
int b;
while((b = bis.read()) == -1) { // read()读取一个字节时, 其实已经读取8192个字节到缓冲区了
bos.write(b); // write()写出一个字节时, 没有直接写到文件, 写到缓冲区里了
bis.close(); //关闭流
bos.close();
}
}
}
|