java _io_字节缓冲流(装饰器)输入、输出

*装饰模式

  • 字节缓冲流
  • BufferedInputStream bis=new BufferedInputStream(inputStream is)
  • BufferedOutputStream bos=new BufferedOutputStream(OutputStream os)
  • 最底层一定是节点流
  • 只需要释放最外层的处理流,若要手动关闭遵循从里到外的顺序关闭(从字节流到处理流)
  • 默认为8k,可以改变
    //参数是字节输入流对象
    InputStream is =new BufferedInputStream(new InputStream(f));
    OutputStream os=new BufferedOutputStream(new OutputStream(f));

处理流装饰字节流输入:

    File f =new File("C:\\Users\\10853\\eclipse-workspace\\hell\\src\\hell\\abc");

    InputStream is =null;
    try {
        **is=new BufferedInputStream(new FileInputStream(f));**

        byte[] flush =new byte[1024];
        int len=-1;
        while((len=is.read(flush))!=-1)
        {
            is.read(flush,0,len);
        }
    }catch(FileNotFoundException e)
    {
        e.printStackTrace();
    }catch(IOException e)
    {
        e.printStackTrace();
    }finally {

        try {

            if(null!=is)
            {
                i**s.close();**  //关闭处理流,会自动关闭字节流
            }
        }catch(IOException e)
        {
            e.printStackTrace();
        }

    }

处理流装饰字节流输出:

    File f=new File("D:d/c.txt");

    OutputStream os =null;
    try
    {
    **  os=new BufferedOutputStream(new FileOutputStream(f));**
        String s="addaa";
        byte[] datas=s.getBytes();
        os.write(datas,0,datas.length);
        os.flush();

    }catch(FileNotFoundException e)
    {
        e.printStackTrace();
    }catch(IOException e)
    {
        e.printStackTrace();
    }finally {
        try {
            if(**null!=os**)  //关闭处理流会自动关闭字节流
            {
                os.close();
            }
        }catch(IOException e)
        {
            e.printStackTrace();
        }
    }

原文地址:https://blog.51cto.com/14437184/2423865

时间: 2024-08-24 09:27:03

java _io_字节缓冲流(装饰器)输入、输出的相关文章

java _io_字符缓冲流的输入、输出

新增方法:输入:BufferedReader breader=new BufferedReader(Reader reader);.readLine()读取一行内容,返回字符串输出:BufferedWriter bwriter=new BufferedWirter(Writer writer);.newLine() 写入一个换行符 输入:File f =new File("C:\Users\10853\eclipse-workspace\hell\src\hell\abc");Buff

java字节缓冲流和字符缓冲流

一.字节缓冲流 1.介绍 字节缓冲流根据流的方向,分为: 1.写入数据到流中,字节缓冲输出流 BufferedOutputStream 2.读取流中的数据,字节缓冲输入流 BufferedInputStream 它们的内部都包含了一个缓冲区,通过缓冲区读写,就可以提高了IO流的读写速度 2.字节缓冲输出流BufferedOutputStream 构造方法: public BufferedOutputStream(OutputStream out):创建一个新的缓冲输出流,以将数据写入指定的底层输

Java IO 过滤流 字节缓冲流 BufferedInput/OutputStream

Java IO 过滤流 字节缓冲流 BufferedInput/OutputStream @author ixenos 概念 BufferedInput/OutputStream是实现缓存的过滤流,他们分别是FilterInput/OutputStream的子类. BufferedInputStream工作流程 stream-->buf--read buf-->I 1.当一个BufferedInputStream被创建时,一个内部的缓冲区 byte[] buf = new byte[size]

Java设计模式(四) 装饰器模式 代理器模式

(七)装饰器模式 Decorator 装饰器模式是为了动态的给一个对象增加一些新功能.装饰对象与被装饰的对象需要实现同一个接口,装饰对象持有被装饰对象的实例. interface DecoratorSourceable{ public void method(); } //被装饰类 class DecoratorSource implements DecoratorSourceable{ public void method(){ System.out.println("Source"

编码表、字节流、字节缓冲流

概念:     字节流不需要刷新(byte) 字符流需要刷新(char) IO流:input(通过Java程序往内存里读取) output(通过Java程序往硬盘上外写出) 输入输出流 * IO流的分类 *          按照操作的数据不同 *                 字节流:操作字节,由于计算机上一切皆是字节,字节流可以操作一切数据 *                 字符流:操作字符,只能操作文本文件 *                 文本文件:能使用文本工具 打开 看懂的叫做

Java基础教程——缓冲流

缓冲流 "缓冲流"也叫"包装流",是对基本输入输出流的增强: 字节缓冲流: BufferedInputStream , BufferedOutputStream 字符缓冲流: BufferedReader , BufferedWriter 缓冲流的基本原理: 创建流对象时,会创建一个缓冲区数组,通过缓冲区读写,减少系统IO次数,以提高读写效率. 就像送快递,快递小哥一次带一件当然慢,所以用车来运输,跑一趟可以带很多件. 以字符流为例: |-读文件:FileReade

字节缓冲流 ( BufferedInputStream / BufferedOutputStream)

package com.sxt.reader; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /* * 字节缓冲流 * BufferedI

java中的缓冲流

一开始,并不明白java中的缓冲流到底有什么作用.OutputStream和BufferedOutputStream有什么区别,两者的write()方法都是一个字节一个字节的写,不同之处就是BufferedOutputStream会将字节先写到一个缓冲区中,然后通过flush()或者关闭这个缓冲流来实现将缓冲流中的数据回显. 之后,通过查阅关于缓冲流的相关知识,了解了一点点,一个字节一个字节的写入到硬盘会耗费时间,而先把数据写入缓冲区的话,再一次性的写入到硬盘或者其他地方,会节省很多时间.从而提

文件流之字节缓冲流(BufferedInputStream BufferedOutputStream)

缓冲流的优势是: BufferedInputStream: 输入缓冲流:先从磁盘中将要读取的内容放入到内存中,再一次性从内存中取出来,避免了读一段取一段: BufferedOutputStream: 输出缓冲流:先将要输出的内容放入到内存中,再一次性全都输出. 缓冲流的构造函数: public BufferedInputStream(InputStream in) { this (in, DEFAULT_BUFFER_SIZE); } public BufferedInputStream(Inp