JAVA 中的 IO流、字节流、字符流、缓冲流、转换流、序列流、打印流(四)

105 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

第三章:缓冲流

简述: 功能更强大的流,能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些都是在基本的流对象基础之上创建而来的,是对基本流对象的一种增强

1.1 字节缓冲流

继承自父类的共性成员方法:
public void close()
public void flush()
public void write(byte[] b)
public void write(byte[] b, int off, int len)
public abstract void write(int b)

1.11 BufferedOutputStream

构造方法:
  • BufferedOutputStream(OutputStream out)
  • BufferedOutputStream(OutputStream out, int size)
使用步骤:
  1. 创建FileOutputStream对象,构造方法中绑定要输出的目的地
  2. 创建BufferedOutputStream对象,构造方法中传递FileOutputStream对象,提高FileOutputStream对象效率
  3. 使用BufferedOutputStream对象中的write方法,把数据写入到内部缓冲区中
  4. 使用BufferedOutputStream对象中的flush方法,把内部缓冲区中的数据刷新到文件中
  5. 释放资源(会先调用flush方法刷新数据)
练习
FileOutputStream fos = new FileOutputStream("E:\\test\\c.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
bos.write("把数据写到缓冲区中".getBytes());
bos.flush();
bos.close(); 

1.12 BufferedIntputStream

构造方法:
  • BufferedIntputStream(OutputStream out)
  • BufferedIntputStream(OutputStream out, int size)
使用步骤:
  1. 创建FIleInputStream对象,构造方法中传入读取的数据源
  2. 创建BufferedInputStream对象,构造方法中传入FIleInputStream
  3. 使用BufferedInputStream中的read方法,读取文件
  4. 释放资源
练习
FileInputStream fis = new FileInputStream("E:\\test\\c.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
byte[] cs = new byte[1024];
int len = 0;
while ((len = bis.read(cs)) != -1) {
	System.out.println(new String(cs, 0, len));
}
bis.close();

1.2 字符缓冲流

1.21 BufferedWriter

构造方法:
  • BufferedWriter(Writer out)
  • BufferedWriter(Writer out, int sz)
特有的成员方法:

void newLine() 写入一个行分隔符。会根据不同的操作系统,获取不同的行分隔符

使用步骤:
  1. 创建BufferedWriter对象,构造方法中传入写入的数据源