转载自  Java IO: ByteArray和Filter

作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)

本小节会简要概括Java IO中字节数组与过滤器的输入输出流,主要涉及以下4个类型的流:ByteArrayInputStream,ByteArrayOutputStream,FilterInputStream,FilterOutputStream。请注意,为了清晰,这里忽略了必要的异常处理。想了解更多异常处理的信息,请参考Java IO异常处理。

ByteArrayInputStream

原文链接

ByteArrayInputStream允许你从字节数组中读取字节流数据,代码如下:

byte[] bytes = ... //get byte array from somewhere.InputStream input = new ByteArrayInputStream(bytes);int data = input.read();while(data != -1) {//do something with datadata = input.read();}input.close();

如果数据存储在数组中,ByteArrayInputStream可以很方便地读取数据。如果你有一个InputStream变量,又想从数组中读取数据呢?很简单,只需要把字节数组传递给ByteArrayInputStream的构造函数,在把这个ByteArrayInputStream赋值给InputStream变量就可以了(译者注:InputStream是所有字节输入流流的基类,Reader是所有字符输入流的基类,OutputStream与Writer同理)。

ByteArrayOutputStream

原文链接

ByteArrayOutputStream允许你以数组的形式获取写入到该输出流中的数据,代码如下:

ByteArrayOutputStream output = new ByteArrayOutputStream();//write data to output streambyte[] bytes = output.toByteArray();

FilterInputStream

原文链接

FilterInputStream是实现自定义过滤输入流的基类,基本上它仅仅只是覆盖了InputStream中的所有方法。

就我自己而言,我没发现这个类明显的用途。除了构造函数取一个InputStream变量作为参数之外,我没看到FilterInputStream任何对InputStream新增或者修改的地方。如果你选择继承FilterInputStream实现自定义的类,同样也可以直接继承自InputStream从而避免额外的类层级结构。

FilterOutputStream

原文链接

内容同FilterInputStream,不再赘述。

Java IO: ByteArray和Filter相关推荐

  1. java byte array_Java IO: ByteArray和Filter

    byte[] bytes = ... //get byte array from somewhere. InputStream input = new ByteArrayInputStream(byt ...

  2. Java IO: 字符流的Buffered和Filter

    作者: Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com) 本章节将简要介绍缓冲与过滤相关的reader和writer,主要涉及BufferedReader.B ...

  3. Java源码解析——Java IO包

    一.基础知识: 1. Java IO一般包含两个部分:1)java.io包中阻塞型IO:2)java.nio包中的非阻塞型IO,通常称为New IO.这里只考虑到java.io包中堵塞型IO: 2. ...

  4. Java IO完全总结(转载) --- 重点在源码分析

    转载自https://blog.csdn.net/baobeisimple/article/details/1713797 个人认为前面对于输入输出流(超类)的 继承结构,仅仅作为参考知识了解,如果想 ...

  5. 1.6 万字长文带你读懂 Java IO

    Java IO 是一个庞大的知识体系,很多人学着学着就会学懵了,包括我在内也是如此,所以本文将会从 Java 的 BIO 开始,一步一步深入学习,引出 JDK1.4 之后出现的 NIO 技术,对比 N ...

  6. org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe

    完整错误信息: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipeat org.a ...

  7. Java IO流中 File文件对象与Properties类(四)

    File类 用来将文件或目录封装成对象 方便对文件或目录信息进行处理 File对象可以作为参数传递给流进行操作 File类常用方法 创建 boolean createNewFile():创建新文件,如 ...

  8. java IO之 File类+字节流 (输入输出 缓冲流 异常处理)

    1. File类 File 路径问题: 上下级文件夹之间使用分隔符分开: 在Windows中分隔符为'\' ,在Unix/Linux中分隔符为'/' 跨平台分隔符: 专业的做法是使用File.sepa ...

  9. 【图解Java】这下可以真的弄懂Java IO了~

    文章目录 写在前面 Java IO(Stream) 一.IO流的分类和概念 1.1 流的分类 流的原理和解析 二.IO流的常见用法 2.1 这里是输入流的一些读取方法 2.2 提供的一些移动指针的方法 ...

最新文章

  1. (C#)AJAX post方式传值
  2. 13.相机和图像——缩放和移动是不一样的,移动变焦镜头,镜头并不完美,镜像系统_5
  3. 《Flask 入门教程》 第 2 章:Hello, Flask!
  4. apk安装到电视上看不到图标_零基础搭建电视直播APP平台第二弹(修改APP)
  5. java Web应用配置log4j日志记录
  6. CentOS - 安装mysql
  7. Spring 注解编程之注解属性别名与覆盖
  8. 拨号720错误解决记.txt
  9. 游戏设计3C之一——角色
  10. 032-OpenCV模板匹配单个对象、多个对象
  11. 中国医疗信息化建设“十四五”规划分析及投资前景预测报告2022-2028年版
  12. java中的private访问控制
  13. php文件显示文字乱码怎么解决,php遍历到的文件是中文文件名 显示为乱码 该如何解决...
  14. 服务器销售工资如何计算公式,拿提成的工资怎么算的有公式吗
  15. 2021江苏省南通市高考成绩查询时间,2021南通市安全教育平台登录入口网址【最新】...
  16. 添加权限,获取到用户信息,就用户当前部门进行下拉选择
  17. npm install error code EINTEGRITY sha1
  18. [Vs提示:不允许使用不完整类型]使用结构体常犯的错误
  19. 爬虫实战|从笔趣阁爬取书籍并简单保存
  20. centos 下查看本机公网IP

热门文章

  1. [Java基础]字符流中的编码解码问题
  2. [蓝桥杯2017初赛]方格分割-dfs+思维
  3. 数据结构与索引-- B+树索引
  4. mysql字符集变为gbk_MYSQL数据库默认latin1字符集转换为GBK或UTF8
  5. Linux下Tomcat安装和配置
  6. Java RMI,Socket,HttpClient
  7. #6682. 梦中的数论(Min25筛)
  8. 1285. 单词 ac自动机 + fail树
  9. Codeforces Round #633 B. Edge Weight Assignment 结论题 + dp
  10. CF1158D. Beautiful Array