文章目录
BufferedInputStream & BufferedOutputStream
- 字节缓冲流
- 提高IO效率,减少访问磁盘次数。内部定义了一个8K的缓冲区,具体查看源码。
- 数据存储在缓冲区中,flush是将缓存区的内容写入文件,也可以直接close。
- 方法与FileInputStream & FileOutputStream 相似。
BufferedInputStream构造方法
- BufferedInputStream(InputStream in)
创建一个 BufferedInputStream并保存其参数,输入流 in ,供以后使用。 - BufferedInputStream(InputStream in, int size)
创建 BufferedInputStream具有指定缓冲区大小,并保存其参数,输入流 in ,供以后使用。
代码示例
import java.io.BufferedInputStream;
import java.io.FileInputStream;
public class TestBufferedInputStream {
public static void main(String[] args) throws Exception{
FileInputStream fis = new FileInputStream("D:\\JavaCode\\JavaSE\\zz.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
int date = 0;
while ((date = bis.read()) != -1){
System.out.print((char)date);
}
bis.close();
}
}
BufferedOutputStream 构造方法
- BufferedOutputStream(OutputStream out)
创建一个新的缓冲输出流,以将数据写入指定的底层输出流。 - BufferedOutputStream(OutputStream out, int size)
创建一个新的缓冲输出流,以便以指定的缓冲区大小将数据写入指定的底层输出流。
代码示例
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
public class TestBufferedOutputStream {
public static void main(String[] args) throws Exception {
FileOutputStream fos = new FileOutputStream("D:\\JavaCode\\JavaSE\\Buffered.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
bos.write("HelloWorld".getBytes());//写入8K缓冲区
bos.flush();//若不使用flush()方法来刷新硬盘 或者不关闭该字节缓冲流(close方法中执行了flush方法) 该写入仅写至缓冲区
bos.close();//内部调用了flush方法
}
}
注意事项:若不使用flush()方法来刷新硬盘 或者不关闭该字节缓冲流(close方法中执行了flush方法) 该写入仅写至缓冲区