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的自学历程...只需坚持
  • 相关阅读:
    visual studio2010中C#生成的,ArcGIS二次开发的basetool的dll,注册为COM组件tlb文件,并在arcmap中加载使用
    EPSG:4326
    返回mapcontrol上的已被选择的element
    设置mapcontrol的鼠标样式
    设置mapcontrol的鼠标样式
    2016年6月11日 星期六 晴
    2016年6月10日 星期五 晴
    Docker安装部署
    LVS+DR
    mysql MHA
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5924791.html
Copyright © 2011-2022 走看看