java缓冲流

版权声明:酷酷的锐 https://blog.csdn.net/weixin_42057767/article/details/82287561

BufferedOutputStream:字节缓冲输出流
     
        缓冲输出流的特点是:在流里维护了一个缓冲区,写字节时,先将字节
        写入缓冲区, 当缓冲区装满时,再一次性的将数据写到文件里。这样就
        降低了写的次数,因此提高了效率。
      PS:当一次写的字节超出缓冲区大小,会不使用缓冲区会直接写在硬盘中。
         
    
        因此缓冲输出流缺失即时性,可以使用flush方法进行冲刷
    
        常用构造器:

BufferedOutputStream(OutputStream out) 创建一个指定字节输出流的缓冲流对象
BufferedOutputStream(OutputStream out,int size) 创建一个指定字节输出流的缓冲流对象,并设置缓冲区的大小

 
         常用方法:

void write(int b): 写int数据的低八位,写入缓冲区内
void write(byte[] b,int off,int len) 写指定长度len的字节数组,写入缓冲区

                    
    BufferedInputStream:字节缓冲输入流


       在读取字节时,也是一个字节一个字节的读,次数多,效率低。
       使用缓冲输入流,内部维护了一个缓冲区,默认8k,先一次性将缓冲区装满
       等待读取.
       当将缓冲区的数据读完,缓冲区再次存储后续数据。读取的次数明显降低
        效率高      
     
       构造器:

BufferedInputStream(InputStream is); 创建一个指定字节输入流的缓冲流对象
BufferedInputStream(InputStream is,int size); 创建一个指定字节输入流的缓冲流对象,并设置缓冲区的大小


    常用方法:
       int read(byte[] bs)
              读取缓冲区里的字节存储bs中,
              当一次性得去的字节小于缓冲区,我们是从缓冲区里读数据。
              此时,效率高  
                     
              当一次性读取的字节超出缓冲区大小。
              不使用缓冲区,直接从文件里读。
        
       int read(byte[] bs,int off,int len)  

      读指定长度len的字节数组,写入缓冲区           

猜你喜欢

转载自blog.csdn.net/weixin_42057767/article/details/82287561