美文网首页Android学习
Android-IO流之缓冲字节流BufferedInputSt

Android-IO流之缓冲字节流BufferedInputSt

作者: Amy_LuLu__ | 来源:发表于2018-01-31 11:50 被阅读0次

    目录

    1. BufferedInputStream/BufferedOutputStream
      --5.1 BufferedOutputStream 缓冲输出字节流
      --5.2 BufferedInputStream 缓冲输入字节流
      --5.3 使用BufferedInputStream和BufferedOutputStream进行拷贝

    5.BufferedInputStream/BufferedOutputStream(需要flush()才可写入)

    字节缓冲流(内置一个缓冲区(数组))
    内存的运算效率比硬盘快很多,所以只有降低硬盘的读取次数才会提高效率。


    5.1 BufferedOutputStream

    程序向流中写出字节时,不会直接写到文件中,会先写到缓冲区中,直到缓冲区写满,才会把缓冲区中的数据一次性写到文件中。

    1. BufferedOutputStream常用构造方法
    public BufferedOutputStream(OutputStream out)
    

    2.重要方法

    public synchronized void write(int b)
    public synchronized void write(byte b[], int off, int len)
    public synchronized void flush() //用于刷新缓冲区,刷新后可再次读出,而close是关闭流释放资源了。
    

    5.2 BufferedInputStream

    程序读取字节时,BufferedInputStream一次性从文件中读取8192个字节存在缓冲区,程序读取时,不用找文件,直接从缓冲区中读取,直到缓冲区中的所有字节都被读取,再重新从文件中读取8192个字节。

    1. BufferedInputStream常用构造方法
    public BufferedInputStream(InputStream in)
    

    2.重要方法

    public synchronized int read()
    public synchronized int read(byte b[], int off, int len)
    

    5.3 使用BufferedInputStream和BufferedOutputStream进行拷贝

    File dir = Environment.getExternalStorageDirectory();
    File file = new File(dir, "abc.txt");
    File dst = new File(dir, "dst1.text");
    
    FileInputStream fis = new FileInputStream(file);
    BufferedInputStream bis = new BufferedInputStream(fis);
    
    FileOutputStream fos = new FileOutputStream(dst);
    BufferedOutputStream bos = new BufferedOutputStream(fos);
    
    byte[] buffer = new byte[1024];
    int len = -1;
    while((len = bis.read(buffer))!=-1){
        bos.write(buffer,0,len);
     }
    bis.close();
    fis.close();
    fos.close();
    bos.close();
    

    相关文章

      网友评论

        本文标题:Android-IO流之缓冲字节流BufferedInputSt

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