字节流以字节为传输单位,用来读写8位的数据,除了能够处理纯文本文件之外,还能用来处理二进制文件的数据。  InputStream类和OutputStream类是所有字节流的父类。

InputStream类

面向字节的输入流都是InputStream类的子类,其类层次结构如图10-6所示。


图10-6 InputStream的类层次结构图

表 10-5 列出了 InputStream 的主要子类及说明。

表 10-5 InputStream 的主要子类
类名 功能描述
FileInputStream 从文件中读取的输入流
PipedInputStream 输入管道
FilterInputStream 过滤输入流
ByteArrayInputStream 从字节数组读取的输入流
SequenceInputStream 两个或多个输入流的联合输入流,按顺序读取
ObjectInputStream 对象的输入流
LineNumberInputStream 为文本文件输入流附加行号
DataInputStream 包含读取 Java 标准数据类型方法的输入流
BufferedInputStream 缓冲输入流
PushbackInputStream 返回一个字节并把此字节放回输入流

InputStream 流类中包含一套所有输入都需要的方法,可以完成最基本的从输入流读入数据的功能。表 10-6 列出了其中常用的方法及说明。

表 10-6 InputStream 的常用方法
方法 功能描述
void close() 关闭输入流
void mark() 标记输入流的当前位置
void reset() 将读取位置返回到标记处
int read() 从输入流中当前位置读入一个字节的二进制数据,以此数据为低位字节,补足16位的整型量(0~255)后返回,若输入流中当前位置没有数据,则返回-1
int read(byte b[]) 从输入流中的当前位置连续读入多个字节保存在数组中,并返回所读取的字节数
int read(byte b[], int off, int len) 从输入流中当前位置连续读len长的字节,从数组第off+1个元素位置处开始存放,并返回所读取的字节数
int available() 返回输入流中可以读取的字节数
long skip(long n) 略过n个字节
long skip(long n) 跳过流内的n个字符
boolean markSupported() 测试输入数据流是否支持标记

OutputStream类

面向字节的输出流都是OutputStream类的子类,其类层次结构如图10-7所示。


图10-7 OutputStream的类层次结构图

10-7列出了OutputStream的主要子类及说明。

表10-7 OutputStream的主要子类
类名 功能描述
FileOutputStream 写入文件的输出流
PipedOutputStream 输出管道
FilterOutputStream 过滤输出流
ByteArrayOutputStream 写入字节数组的输出流
ObjectOutputStream 对象的输出流
DataOutputStream 包含写Java标准数据类型方法的输出流
BufferedOutputStream 缓冲输出流
PrintStream 包含print()和println()的输出流

OutputStream流类中包含一套所有输出都需要的方法,可以完成最基本的向输出流写入数据的功能。表10-8列出了其中常用的方法及说明。

表10-8 OutputStream的常用方法
方法 功能描述
void close() 关闭输出流
void flush() 强制清空缓冲区并执行向外设输出数据
void write(int b) 将参数b的低位字节写入到输出流
void write(byte b[]) 按顺序将数组b[]中的全部字节写入到输出流
void write(byte b[], int off, int len) 按顺序将数组b[]中第off+1个元素开始的len个数据写入到输出流

由于InputStream和OutputStream都是抽象类,所以在程序中创建的输入流对象一般是它们某个子类的对象,通过调用对象继承的read()和write()方法就可实现对相应外设的输入输出操作。

Java中面向字节的输入输出流相关推荐

  1. java面向字符的输入流_Java编程开发中面向字节的输入输出流

    关于面向字符的输入流和输出流方面教程已经讲解完了,下面要介绍的就是Java编程开发中面向字节的输入输出流,希望本节内容可以帮助大家更好的学习Java. 教程回顾点击查看: 字节流以字节为传输单位,用来 ...

  2. Java I/O流——面向字节的输入/输出流(超级详细)

    目录 前言 流的概念 I/O设备与文件 面向字节的输入流 InputStream类 类InputStream的子类的使用 文件输入流(FileInputStream) 文件输入流(FileInputS ...

  3. Java中IO流,输入输出流概述与总结(转载自别先生文章)

    Java中IO流,输入输出流概述与总结 总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都 ...

  4. 面向字节的输入输出流

    一:面向字节的输入流 父类InputStream为抽象类,不能被实例化.面向字节的输入流都是InputStream类的子类,其类层次结构下图所示: 下表 列出了 InputStream 的主要子类及说 ...

  5. java中nio流_Java输入输出流IO介绍(与NIO比较)

    一.Java中流的类型 根据流的方向划分:输入流,输出流 根据流的传输单位:字节流,字符流 根据流的角色划分:节点流,处理流 节点流:直接连接数据源的流 处理流:通过构造方法接收一个节点流,对节点流使 ...

  6. Java中IO流,输入输出流概述与总结

    1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的 ...

  7. Java中的字节输入出流和字符输入输出流

    Java中的字节输入出流和字符输入输出流 下面哪个流类属于面向字符的输入流( ) A BufferedWriter  B FileInputStream  C ObjectInputStream  D ...

  8. 1.1 Java流是什么?输入/输出流又是什么?

    在 Java 中所有数据都是使用流读写的.流是一组有序的数据序列,将数据从一个地方带到另一个地方.根据数据流向的不同,可以分为输入(Input)流和输出(Output)流两种. 在学习输入和输出流之前 ...

  9. 面向字符的输入输出流

    一:面向符的输入流 父类Reader为抽象类,不能被实例化.面向字符的输入流都是Reader类的子类,其类层次结构下图所示: 下表 列出了 Reader 的主要子类及说明 下表 列出了 Reader ...

最新文章

  1. c语言 狸抓兔子,捕捉猫狸的方法- 抓野猫的最好方法
  2. SCCM 2012 SP1升级
  3. mysql date_trunc_com.mysql.jdbc.MysqlDataTruncation: Data trunca...
  4. Origin绘制大小和颜色可变的3D散点图
  5. P3247-[HNOI2016]最小公倍数【分块,并查集】
  6. SLAM GMapping(4)SLAM处理器
  7. linux按括号截取字符串,Linux作业4
  8. HDU 3790 最短路径问题 (SPFA)
  9. Bitwise Operation Explained
  10. office转PDF文档
  11. AI智能语音识别算法原理 二
  12. 联想r480安全模式_thinkpad怎么进入安全模式
  13. mtk blog --MTK Android 之MT6577驱动笔记
  14. 读《深入浅出Nodejs-朴灵》笔记
  15. 让横向纵向分辨率都一致
  16. matlab湿度廓线,中国气象数据网
  17. (9)javaEE---equest与response
  18. c# HttpClient 获取cookie
  19. 给图片加水印--手把手教新码农如何把技术变成产品
  20. 中国人寿信息技术部实习总结

热门文章

  1. jfinal 微信授权登录
  2. ESRI Button 对应的图标
  3. 通讯录(文件版)程序编写(C语言版)
  4. doxygen 命令_doxygen使用详解
  5. 新闻!版权猫的进击!ip猫ipMALL.io@Kid.ArtWing+国际少儿艺术展在国家会议中心开幕
  6. linux中jstack命令详解,Linux jstack命令详解
  7. 【win8无线网络连接受限的解决方法】
  8. zzulioj 1006: 求等差数列的和
  9. cisco881配置连接计算机,cisco 881 无线路由配置
  10. CodeForces - 1089L 贪心