IO流详解——BufferedInputStream字节缓冲流以及常用IO流总结对比

326 阅读3分钟

「这是我参与2022首次更文挑战的第10天,活动详情查看:2022首次更文挑战」。

前言

大家好,我是程序猿小白 gw_Gw,很高兴能和大家一起学习进步。

以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。

摘要

本文主要介绍BufferedInputStream字节缓冲流的基本概念和使用,以及常用IO流的总结对比。

欢迎关注专栏IO流学习了解更多IO流。

BufferedInputStream使用字节缓冲流读取文件

1. 什么是BufferedInputStream

FilterInputStream的子类,加强版的字节输入流。

2. BufferedInputStream的构造方法

BufferedInputStream(InputStream in) 
          创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。 
BufferedInputStream(InputStream in, int size) 
          创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。 

实例展示:

String path = "FileDemo\src\main\java\FileDemo\1.txt";
File file=new File(path);
//默认缓冲区大小8192
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
//指定缓冲区大小
BufferedInputStream bis1 = new BufferedInputStream(new FileInputStream(file),2048);

3. BufferedInputStream的常用方法

 void close() 
          关闭此输入流并释放与该流关联的所有系统资源。 
 int read() 
          参见 InputStream 的 read 方法的常规协定。
 int read(byte[] b) 
          从此输入流中将 byte.length 个字节的数据读入一个 byte 数组中。 
 int read(byte[] b, int off, int len) 
          从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。 

实例展示:

int b=0;
byte[] bytes = new byte[1024];
bis.read();
bis.read(bytes,0,32);
while((b=bis.read(bytes))!=-1){
    System.out.println(new String(bytes,0,b));
}
bis.close();

4. IO流小结

字节流参数作用
FileOutputStream(File file) (File file,boolean append) (String filePath) (String filePath,boolean append)以字节为单位写入文件,多用于音频图像等原始字节流。
FileInputStream(File file) (String filePath)以字节为单位读取文件,多用于音频图像等原始字节流。
字符流参数作用
FileWriter(File file) (File file,boolean append) (String filePath) (String filePath,boolean append)以字符为单位写入文件。
FileReader(File file) (String filePath)以字符为单位读取文件。
转换流参数作用
OutputStreamWriter(OutputStream out) (OutputStream out, Charset cs) (OutputStream out, CharsetEncoder enc) (OutputStream out, String charsetName) 参数一般使用其子类FileOutputStream使用指定的编码方式写入文件。
InputStreamReader(InputStream in) (InputStream in, Charset cs) (InputStream in, CharsetEncoder enc) (InputStream in, String charsetName) 参数一般使用其子类FileInputStream使用指定的编码方式读取文件。
缓冲流参数作用
BufferedOuputStream(OutputStream out, int size) (OutputStream out) 参数一般使用其子类FIleOutputStream
BufferedInputStream(InputStream in, int size) (InputStream in) 参数一般使用其子类FileInputStream
BufferedWriter(Writer out, int size) (Writer out) 参数一般使用其子类FileWriter和OutputStreamWriter特殊方法newLine()
BufferedReader(Reader in, int size) (Reader in) 参数一般使用其子类FileReader和InputStreamReader特殊方法readLine()

小结

以上就是关于BufferedInputStream字节缓冲流的介绍和常用IO流的总结,希望对读者有所帮助,如有不正之处,欢迎留言指正。