字节缓冲流的使用
- 缓冲流:BufferedInputStream/BufferedOutPutStream
- 提高IO效率,减少访问磁盘的次数
- 数据存储在缓冲区中,flush是将缓冲区的内容写入文件中,也可以直接close.
BufferedInputStream
package stream;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
/*
使用字节缓冲流读取
BufferedInputStream
*/
public class Demo05 {
public static void main(String[] args)throws Exception {
//1.创建BufferedInputStream
FileInputStream fis = new FileInputStream("e:\\aaa.txt");
BufferedInputStream bis = new BufferedInputStream(fis);//增强
//2.读取缓冲区
int data = 0;
while ((data=bis.read())!=-1){
System.out.print((char)data);
}
//3.关闭
bis.close();
System.out.println();
System.out.println("程序结束");
}
}
//缓冲区中最多存储8k的东西
//也可以这样写,一次读取多个
package stream;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
/*
使用字节缓冲流读取
BufferedInputStream
*/
public class Demo05 {
public static void main(String[] args)throws Exception {
//1.创建BufferedInputStream
FileInputStream fis = new FileInputStream("e:\\aaa.txt");
BufferedInputStream bis = new BufferedInputStream(fis);//增强
//2.读取缓冲区
byte[] buf = new byte[1024];
int data = 0;
while ((data=bis.read(buf))!=-1){
System.out.println(new String(buf,0,data));
}
//3.关闭
bis.close();
System.out.println();
System.out.println("程序结束");
}
}
BufferOutputStream
package stream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
/**
* 使用字节缓冲流写入文件
* BufferedOutputStream
*
*/
public class Demo06 {
public static void main(String[] args)throws Exception {
//创建字节输出缓冲流
FileOutputStream fos = new FileOutputStream("e:\\buffer.txt",true);//可以继续写
BufferedOutputStream bos = new BufferedOutputStream(fos);
//2.写入文件
for (int i = 0; i < 10; i++) {
bos.write("helloworld\r\n".getBytes());//写入8k的缓冲区中
bos.flush();//刷新到硬盘
}
//关闭(内部会调用flush())
bos.close();
}
}