zoukankan      html  css  js  c++  java
  • java 20

    由之前字节输入的两个方式,我们可以发现,通过定义数组读取数组的方式比一个个字节读取的方式快得多。

    所以,java就专门提供了带有缓冲区的字节类:

    缓冲区类(高效类)

    写数据:BufferedOutputStream

        构造方法:

          BufferedInputStream(InputStream in) 创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。

          BufferedInputStream(InputStream in, int size) 创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
    读数据:BufferedInputStream

        构造方法:

          BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。

          BufferedOutputStream(OutputStream out, int size) 创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。

    疑惑:

      例如:BufferedOutputStream(OutputStream out)
          为什么不传递一个具体的文件或者文件路径,而是传递一个OutputStream对象呢?
    原因:

      字节缓冲区流仅仅提供缓冲区,为高效而设计的。但是呢,真正的读写操作还得靠基本的流对象实现。
     例子:  BufferedOutputStream:相当于水杯
          OutputStream:相当于水,解渴还得靠水

    创建高效字节输出流对象,并输入数据

    BufferedOutputStream out = new BufferedOutputStream(
                    new FileOutputStream("c.txt"));

      // 输出数据
      out.write("javaIO".getBytes());

      out.close();

    创建高校字节输入流对象,并输出数据

    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
                    "bos.txt"));

    byte[] bys = new byte[1024];
    int len = 0;
    while ((len = bis.read(bys)) != -1) {
    System.out.print(new String(bys, 0, len));
    }

    // 释放资源
    bis.close();

    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    CF-478C
    HDU-2074-叠筐
    HDU-2037-今年暑假不AC
    POJ-2785-4 Values whose Sum is 0
    HDU-1160-FatMouse's Speed
    HDU-1297-Children’s Queue
    Redis客户端管理工具的安装及使用
    Redis客户端管理工具,状态监控工具
    memcached可视化客户端工具
    javascript回调函数
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5924791.html
Copyright © 2011-2022 走看看