Java IO(十) BufferedInputStream 和 BufferedOutputStream
2021-01-15 19:14
标签:int 数组实现 跳过 内存 cep oid new vat col BufferedInputStream 是缓冲字节输入流,继承自FilterInputStream,它的作用是为另一个输入流对象提供一些额外的功能。如:缓冲功能,支持 mark(标记)和reset(重置)功能等。 BufferedInputStream 本质上是通过一个内部缓冲区数组实现的。例如,在新建某输入流对应的 BufferedInputStream 后,当我们通过read()读取输入流的数据时,BufferedInputStream会将该输入流的数据分批的填入到缓冲区中。每当缓冲区中的数据被读完之后,输入流会再次填充数据缓冲区;如此反复,直到我们读完输入流数据位置。 BufferedOutputStream 是缓冲字节输入流,继承自FilterOutputStream,它的作用是为另一个输出流对象提供缓冲功能。
BufferedOutputStream 为其它输出流提供缓冲功能。创建BufferedOutputStream 时,我们会通过它的构造函数指定某个输出流为参数。通过字节数组来缓冲数据,当缓冲区满或者用户调用 flush() 函数时,它就会将缓冲区的数据写入到输出流中。 BufferedInputStream的作用是为其它输入流提供缓冲功能。创建BufferedInputStream时,我们会通过它的构造函数指定某个输入流为参数。BufferedInputStream会将该输入流数据分批读取,每次读取一部分到缓冲中;操作完缓冲中的这部分数据之后,再从输入流中读取下一部分的数据。缓冲中的数据实际上是保存在内存中,从内存中读取数据的速度更快从而提高性能。 分批读取而不一次性读取的好处: Java IO(十) BufferedInputStream 和 BufferedOutputStream 标签:int 数组实现 跳过 内存 cep oid new vat col 原文地址:https://www.cnblogs.com/lingq/p/12924901.htmlJava IO(十)BufferedInputStream 和 BufferedOutputStream
一、BufferedInputStream 和 BufferedOutputStream
(一)、BufferedInputStream
二、构造方法
(一)、BufferedInputStream
(二)、BufferedOutputStream
三、常用API
(一)、BufferedInputStream
(二)、BufferedOutputStream
四、缓冲功能
(一)、BufferedOutputStream
(二)、BufferedInputStream
五、实例
private static final byte[] buffer = "abcdefghijklmnopqrstvuwxyz".getBytes();
public static void main(String[] args) {
write();
read();
}
/**
* BufferedOutputStream 测试
*/
public static void write() {
BufferedOutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream(new File("test.txt")));
out.write(buffer);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null)
out.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* BufferedInputStream 测试
*/
public static void read() {
BufferedInputStream in = null;
byte[] bu = new byte[10];
int len = 0;
try {
in = new BufferedInputStream(new FileInputStream(new File("test.txt")));
int temp = in.read();// 获取单字节数据
System.out.println("temp : " + (char)temp);
in.mark(5);// 标记第五个元素
in.skip(10);// 跳过10个字节
len = in.read(bu,0,5);// 获取5字节数据
System.out.println("bu : " + new String(bu,0,len));
in.reset();// 重置
len = in.read(bu,0,5);// 获取5字节数据
System.out.println("bu : " + new String(bu,0,len));
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (in != null)
in.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
上一篇:Java异常处理
文章标题:Java IO(十) BufferedInputStream 和 BufferedOutputStream
文章链接:http://soscw.com/index.php/essay/42374.html