美文网首页
37,缓冲流

37,缓冲流

作者: 旅程中 | 来源:发表于2018-10-21 10:48 被阅读3次

转载于:https://www.cnblogs.com/techfox/p/4522734.html
java缓冲流本身不具IO功能,只是在别的流上加上缓冲提高效率,像是为别的流装上一种包装。当对文件或其他目标频繁读写或操作效率低,效能差。这时使用缓冲流能够更高效的读写信息。因为缓冲流先将数据缓存起来,然后一起写入或读取出来。所以说,缓冲流还是很重要的,在IO操作时记得加上缓冲流提升性能。

缓冲流分为字节和字符缓冲流

字节缓冲流为:

BufferedInputStream—字节输入缓冲流

BufferedOutputStream—字节输出缓冲流

字符缓冲流为:

BufferedReader—字符输入缓冲流

BufferedWriter—字符输出缓冲流

下面主要介绍这四种缓冲流的使用。

一.字节缓冲流

1.BufferedOutputStream—字节输出缓冲流

BufferedOutputStream类实现缓冲的输出了,通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必每一个字节写入都调用底层系统。

示例代码:

 public static void main(String[] args) {         
 try {  
  //创建字节输出流实例  
  OutputStream out=new FileOutputStream("L:\\test.txt");  
  //根据字节输出流构建字节缓冲流  
  BufferedOutputStream buf=new BufferedOutputStream(out);  

  String data="好好学习,天天向上";  
 buf.write(data.getBytes());//写入缓冲区  
 buf.flush();//刷新缓冲区,即把内容写入  
 //关闭流  
  buf.close();//关闭缓冲流时,也会刷新一次缓冲区  
  out.close();  

  } catch (IOException e) {  
  e.printStackTrace();  
  }  

  }   

2.BufferedInputStream—字节输入缓冲流

   BufferedInputStream为别的输入流添加缓冲功能,在创建BufferedInputStream时会创建一个内部缓冲数组,用于缓冲数据,提高性能。

示例代码:

  public static void main(String[] args) {         
  try {  
 //创建字节输入流实例  
  InputStream in=new FileInputStream("L:\\test.txt");  
 //根据字节输入流构建字节缓冲流  
  BufferedInputStream buf=new BufferedInputStream(in);  

  byte[]bytes=new byte[1024];  
  //数据读取  
  int len=-1;  
  StringBuffer  sb=new StringBuffer();  
  while((len=buf.read(bytes))!=-1)  
  {  
  sb.append(new String(bytes,0,len));  
  }  
 System.out.println("内容为:"+sb);  
  //关闭流  
  buf.close();  
  in.close();  

  } catch (IOException e) {  
  e.printStackTrace();  
  }  

  }   

二.字符缓冲流

1.BufferedWriter—字符输出缓冲流

将文本写入字符输出流,缓冲各个字符,从而提供高效的写入。可以指定缓冲区的大小,一般情况下,默认的缓冲区大小就足够了。

示例代码:

1.  public static void main(String[] args) {  

3.  try {  
4.  Writer w=new FileWriter("L:\\test.txt");  
5.  //根据字符输出流创建字符缓冲流  
6.  BufferedWriter buf=new BufferedWriter(w);  
7.  //写入数据  
8.  buf.write("只要功夫深铁杵磨成针");  
9.  //刷新流  
10.  buf.flush();  
11.  //关闭流  
12.  buf.close();  
13.  w.close();  
14.  } catch (IOException e) {  
15.  e.printStackTrace();  
16.  }  

19.  }   

2.BufferedReader—字符输入缓冲流

     从字符输入流中读取信息,缓冲各个字符,从而实现高效读取。可以指定缓冲区的大小,一般情况下,默认的缓冲区大小就足够了。默认大小为8192.

示例代码:

1.  public static void main(String[] args) {  

3.  try {  
4.  Reader r=new FileReader("L:\\test.txt");  
5.  //根据字符输入流创建字符缓冲流  
6.  BufferedReader buf=new BufferedReader(r);  

8.  char [] data=new char[512];  
9.  //数据读取  
10.  int len=-1;  
11.  StringBuilder sb=new StringBuilder();  
12.  while((len=buf.read(data))!=-1)  
13.  {  
14.  sb.append(new String(data,0,len));  
15.  }  
16.  System.out.println("内容是: "+sb);  
17.  //关闭流  
18.  buf.close();  
19.  r.close();  
20.  } catch (IOException e) {  
21.  e.printStackTrace();  
22.  }  

25.  }   

相关文章

  • 37,缓冲流

    转载于:https://www.cnblogs.com/techfox/p/4522734.htmljava缓冲流...

  • 37缓冲流

    之前介绍了一些基本的IO流,我们要开始介绍更高级的缓冲流,对之前的IO流的一种强化 今天要学的是字节缓冲流的输入,...

  • IO流之缓冲流(处理流之一)

    处理流之一:缓冲流 缓冲流:BufferedInputStreamBufferedOutputStreamBuff...

  • 2020-07-03字节缓冲流

    字节缓冲流 字节缓冲流类介绍①BufferedOutputStream:该类实现缓冲输出流。通过设置这样的输出流,...

  • 缓冲流

    缓冲流是为了读取和写入的速度,提高效率主要包括:字节缓冲流和字符缓冲流 字节缓冲流: 根据流的方向,共有2个:字节...

  • File&IO (2)

    1.字节缓冲流 1.1字节缓冲流构造方法【应用】 字节缓冲流介绍lBufferOutputStream:该类实现缓...

  • Java学习Day18

    今日学习内容总结 缓冲流 转换流 序列化 打印流 缓冲流 缓冲流,也叫高效流,是对4个基本的FileXxx 流的增...

  • No.17 字节缓冲流/字符缓冲流

    字节缓冲流: 字节缓冲流简介:1.BufferedInputStream/BufferedOutputStream...

  • 缓冲流

    概述 缓冲流,也叫高效流,是对4个基本流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流:BufferedI...

  • 缓冲流

网友评论

      本文标题:37,缓冲流

      本文链接:https://www.haomeiwen.com/subject/zztbzftx.html