Buffered 缓冲流

缓冲流

缓冲流的基本原理,实在创建流对象时,会创建一个内置默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写效率

按照数据类型分类:

字节缓冲流:BufferedInputStream,BufferedOutputStream

字符缓冲流:BufferedReader,BufferedWriter

1.1 字节缓冲流

构造方法

  • public BufferedInputStream(InputStream in)://创建一个新的缓冲输入流
    public BufferedInputStream(InputStream in,int size)://创建一个指定缓冲区大小的BufferedInputStream并保存其参数,即输入流in,以便使用
    
  • public BufferedOutputStream(OutputSteam out)://创建一个新的缓冲输出流
    public BufferedOutputStream(OutputSteam out,int size)//创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入到指定的底层传输
    

字节输出流使用步骤

1.创建FileOutputStieam,构造方法中绑定要输出的目的地

2.创建BufferedOutputStream对象,构造方法中传递FileOutputStieam对象。提高FileOutputStieam对象效率

3.使用BufferedOutputStream对象中的方法write,把数据写入到缓冲区中

4.使用BufferedOutputStream对象中的方法flush ,把内部缓冲区的数据刷新到文件中

5.释放资源(会先调用fulsh方法刷新数据,第四步可省略)

public class Demo01BufferedOutputStream {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos=new FileOutputStream("C:\\Users\\Administrator\\Desktop\\Study\\src\\com\\bainan\\io\\e.txt");
        BufferedOutputStream bos=new BufferedOutputStream(fos);
        bos.write("我在写数据111".getBytes());
        bos.close();
        fos.close();

    }

}

字节输入流使用步骤

  1. 创建FileInputStream对象,构造方法中绑定要读取的数据源
  2. 创建BufferedInputStream对象,构造方法中传递FileInputStream对象,提高FileInputStream对象的读取效率
  3. 使用BufferedInputStream对象中的read方法读取文件
  4. 释放资源
public class Demo01BufferedInputStream {
    public static void main(String[] args) throws IOException {
        FileInputStream fis=new FileInputStream("C:\\Users\\Administrator\\Desktop\\Study\\src\\com\\bainan\\io\\e.txt");
        BufferedInputStream bis=new BufferedInputStream(fis);
        byte[] bytes=new byte[1024];
        int len=0;
        while ((len=bis.read(bytes))!=-1){
            System.out.println(new String(bytes,0,len));
        }
        bis.close();

    }

}

1.2 字符缓冲流

构造方法

  • public BufferedReader(Reader in)://创建一个使用默认大小输出缓冲区的缓冲字符输入流
    public BufferedReader(Reader in,int sz )//创建一个指定缓冲区大小的缓冲字符输入流
    
  • public BufferedWriter(Writer out)//创建一个使用默认大小输出缓冲区的缓冲字符输出流
    public BufferedWriter(Writer out,int sz )//创建一个指定缓冲区大小的缓冲字符输出流
    

字符输出流

特有的成员方法

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

使用步骤:

  1. 创建字符缓冲输出流对象,构造方法中传递字符输出流
  2. 调用字符缓冲输出流中的方法write,把数据写入到内存缓冲区中
  3. 调用字符缓冲输出流中的方法flush,把内存缓冲区的数据,刷新到文件中
  4. 释放资源
public class Demo04BufferedWriter {
    public static void main(String[] args) throws IOException {
        BufferedWriter bw=new BufferedWriter(new FileWriter("C:\\Users\\Administrator\\Desktop\\Study\\src\\com\\bainan\\io\\e.txt"));
        for (int i = 0; i < 10; i++) {
            bw.write("我来了BufferWriter");
            bw.newLine();
        }
        bw.flush();
        bw.close();
    }
} 

字符输入流

特有的成员方法

String readLine() //读取一个文本行。读取一行数据
    //行的终止符号:通过下列字符之一即可认为某行已经终止:换行('\n')、回车('\r')或回车后直接跟着换行(\r\n)
//返回值:包含该行内容的字符串,不包含任何终止符号,如果已到达流末尾,则返回null 

使用步骤:

  1. 创建字符缓冲输入流对象,构造方法中传递字符输出流
  2. 调用字符缓冲输入流中的方法read/readline,读取文本
  3. 释放资源
public class Demo03BufferedReader {
    public static void main(String[] args) throws IOException {
        BufferedReader br=new BufferedReader(new FileReader("C:\\Users\\Administrator\\Desktop\\Study\\src\\com\\bainan\\io\\e.txt"));
        String line;
        while ((line=br.readLine())!=null){
            System.out.println(line);
        }
        br.close();

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值