Java中面向字节的输入输出流
字节流以字节为传输单位,用来读写8位的数据,除了能够处理纯文本文件之外,还能用来处理二进制文件的数据。 InputStream类和OutputStream类是所有字节流的父类。
InputStream类
面向字节的输入流都是InputStream类的子类,其类层次结构如图10-6所示。
图10-6 InputStream的类层次结构图
表 10-5 列出了 InputStream 的主要子类及说明。
类名 | 功能描述 |
---|---|
FileInputStream | 从文件中读取的输入流 |
PipedInputStream | 输入管道 |
FilterInputStream | 过滤输入流 |
ByteArrayInputStream | 从字节数组读取的输入流 |
SequenceInputStream | 两个或多个输入流的联合输入流,按顺序读取 |
ObjectInputStream | 对象的输入流 |
LineNumberInputStream | 为文本文件输入流附加行号 |
DataInputStream | 包含读取 Java 标准数据类型方法的输入流 |
BufferedInputStream | 缓冲输入流 |
PushbackInputStream | 返回一个字节并把此字节放回输入流 |
InputStream 流类中包含一套所有输入都需要的方法,可以完成最基本的从输入流读入数据的功能。表 10-6 列出了其中常用的方法及说明。
方法 | 功能描述 |
---|---|
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的主要子类及说明。
类名 | 功能描述 |
---|---|
FileOutputStream | 写入文件的输出流 |
PipedOutputStream | 输出管道 |
FilterOutputStream | 过滤输出流 |
ByteArrayOutputStream | 写入字节数组的输出流 |
ObjectOutputStream | 对象的输出流 |
DataOutputStream | 包含写Java标准数据类型方法的输出流 |
BufferedOutputStream | 缓冲输出流 |
PrintStream | 包含print()和println()的输出流 |
OutputStream流类中包含一套所有输出都需要的方法,可以完成最基本的向输出流写入数据的功能。表10-8列出了其中常用的方法及说明。
方法 | 功能描述 |
---|---|
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中面向字节的输入输出流相关推荐
- java面向字符的输入流_Java编程开发中面向字节的输入输出流
关于面向字符的输入流和输出流方面教程已经讲解完了,下面要介绍的就是Java编程开发中面向字节的输入输出流,希望本节内容可以帮助大家更好的学习Java. 教程回顾点击查看: 字节流以字节为传输单位,用来 ...
- Java I/O流——面向字节的输入/输出流(超级详细)
目录 前言 流的概念 I/O设备与文件 面向字节的输入流 InputStream类 类InputStream的子类的使用 文件输入流(FileInputStream) 文件输入流(FileInputS ...
- Java中IO流,输入输出流概述与总结(转载自别先生文章)
Java中IO流,输入输出流概述与总结 总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都 ...
- 面向字节的输入输出流
一:面向字节的输入流 父类InputStream为抽象类,不能被实例化.面向字节的输入流都是InputStream类的子类,其类层次结构下图所示: 下表 列出了 InputStream 的主要子类及说 ...
- java中nio流_Java输入输出流IO介绍(与NIO比较)
一.Java中流的类型 根据流的方向划分:输入流,输出流 根据流的传输单位:字节流,字符流 根据流的角色划分:节点流,处理流 节点流:直接连接数据源的流 处理流:通过构造方法接收一个节点流,对节点流使 ...
- Java中IO流,输入输出流概述与总结
1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的 ...
- Java中的字节输入出流和字符输入输出流
Java中的字节输入出流和字符输入输出流 下面哪个流类属于面向字符的输入流( ) A BufferedWriter B FileInputStream C ObjectInputStream D ...
- 1.1 Java流是什么?输入/输出流又是什么?
在 Java 中所有数据都是使用流读写的.流是一组有序的数据序列,将数据从一个地方带到另一个地方.根据数据流向的不同,可以分为输入(Input)流和输出(Output)流两种. 在学习输入和输出流之前 ...
- 面向字符的输入输出流
一:面向符的输入流 父类Reader为抽象类,不能被实例化.面向字符的输入流都是Reader类的子类,其类层次结构下图所示: 下表 列出了 Reader 的主要子类及说明 下表 列出了 Reader ...
最新文章
- c语言 狸抓兔子,捕捉猫狸的方法-
抓野猫的最好方法
- SCCM 2012 SP1升级
- mysql date_trunc_com.mysql.jdbc.MysqlDataTruncation: Data trunca...
- Origin绘制大小和颜色可变的3D散点图
- P3247-[HNOI2016]最小公倍数【分块,并查集】
- SLAM GMapping(4)SLAM处理器
- linux按括号截取字符串,Linux作业4
- HDU 3790 最短路径问题 (SPFA)
- Bitwise Operation Explained
- office转PDF文档
- AI智能语音识别算法原理 二
- 联想r480安全模式_thinkpad怎么进入安全模式
- mtk blog --MTK Android 之MT6577驱动笔记
- 读《深入浅出Nodejs-朴灵》笔记
- 让横向纵向分辨率都一致
- matlab湿度廓线,中国气象数据网
- (9)javaEE---equest与response
- c# HttpClient 获取cookie
- 给图片加水印--手把手教新码农如何把技术变成产品
- 中国人寿信息技术部实习总结
热门文章
- jfinal 微信授权登录
- ESRI Button 对应的图标
- 通讯录(文件版)程序编写(C语言版)
- doxygen 命令_doxygen使用详解
- 新闻!版权猫的进击!ip猫ipMALL.io@Kid.ArtWing+国际少儿艺术展在国家会议中心开幕
- linux中jstack命令详解,Linux jstack命令详解
- 【win8无线网络连接受限的解决方法】
- zzulioj 1006: 求等差数列的和
- cisco881配置连接计算机,cisco 881 无线路由配置
- CodeForces - 1089L 贪心