**
BufferOutputStream和BufferInputStream
**
BufferOutputStream
package Java02.jinjie.Buffer;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
/*
* public class BufferedOutputStream extends FilterOutputStream
* 该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。
* BufferedOutputStream的构造方法:
* 1.BufferedOutputStream(OutputStream out)
创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
2.BufferedOutputStream(OutputStream out, int size)
创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。
参数:
* OutputStream out:字节输出流
* OutputStream out, int size 字节输出流,size用于指定缓冲区数组长度
* */
public class BufferOutputStream {
public static void main(String[] args) throws IOException {
// 创建FileOutputStream对象
FileOutputStream fos = new FileOutputStream("C:\\Users" +
"\\syj\\Desktop\\Java工程笔记\\02-java语言进阶笔记\\g.txt");
// 创建BufferedOutputStream对象
BufferedOutputStream bos = new BufferedOutputStream(fos);
// 将数据写到内存缓冲区中
bos.write("得分人非完人个人共和国".getBytes(StandardCharsets.UTF_8));
// 刷新缓冲区,把数据传给文件
bos.flush();
// 释放资源
bos.close();
// bos.close()中包含bos.flush()
}
}
BufferInputStream
package Java02.jinjie.Buffer;
/*public class BufferedInputStream extends FilterInputStream
* BufferedInputStream:
* 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。
* 在创建 BufferedInputStream 时,会创建一个内部缓冲区数组。
* 在读取或跳过流中的字节时,可根据需要从包含的输入流再次填充该内部缓冲区,一次填充多个字节。
* mark 操作记录输入流中的某个点,reset 操作使得在从包含的输入流中获取新字节之前,再次读取自最后一次 mark 操作后读取的所有字节。
* 构造方法:
* 1.BufferedInputStream(InputStream in)
创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
2.BufferedInputStream(InputStream in, int size)
创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
* */
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class BufferInputStream {
public static void main(String[] args) throws IOException {
// 1.创建FileInputStream对象
FileInputStream fis = new FileInputStream("C:\\Users" +
"\\syj\\Desktop\\Java工程笔记\\02-java语言进阶笔记\\g.txt");
// 2.创建BufferedInputStream对象,用于接收字节输出流
BufferedInputStream bis = new BufferedInputStream(fis);
// 3.read方法读取数据
int len =0;
while ((len = bis.read())!=-1){
System.out.println(len);
}
// 4.释放资源
bis.close();
}
}