1.缓冲流(BufferedInputStream BufferedOutputStream)——>提高读写效率
package day04_;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 处理流,又称高级流,作用是使用他们可以简化我们的读写操作
*
* 缓冲流:提高读写效率
* BufferedInputStream:缓冲字节输入流,提高读取效率
* BufferedOutputStream:缓冲字节输出流
* @author soft01
*
*/
public class Copy_Demo2 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("fos.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream("gm.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
int d = -1;
long start = System.currentTimeMillis();
while((d = bis.read())!=-1) {
bos.write(d);
}
long end = System.currentTimeMillis();
System.out.println("复制完毕!耗时:"+(end-start));
bis.close();
bos.close();
}
}
2.缓冲输出流的缓冲区问题
file.flush();——>清空缓冲区,将缓冲区中数据强制写出
package day04_;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 缓冲输出流的缓冲区问题
* @author soft01
*
*/
public class BOS_flush {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("linsa.txt");
BufferedOutputStream bos = new BufferedOutputStream (fos);
String str = "How are you?";
byte[] data = str.getBytes("utf-8");
bos.write(data);
/*
* void flush()
* 将缓冲区已经缓存的数据一次性写出。
* 频繁的调用flush会降低写出效率,
* 但是可以保证写出数据的即时性。
*/
bos.flush();
System.out.println("写出完毕");
bos.close();
}
}