八. 输入输出(IO)操作4.面向字节的输入输出流
字节流以字节为传输单位,用来读写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 www.jimeiyulept.com 的类层次结构图
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()方法就可实现对相应外设的输入输出操作。
八. 输入输出(IO)操作4.面向字节的输入输出流的更多相关文章
- 八. 输入输出(IO)操作5.面向字节流的应用
文件输入输出流 文件输入输出流 FileInputStream 和 FileOutputStream 负责完成对本地磁盘文件的顺序输入输出操作. [例 10-5]通过程序创建一个文件,从键盘输入字符, ...
- 八. 输入输出(IO)操作2.面向字符的输入流
字符流是针对字符数据的特点进行过优化的,因而提供一些面向字符的有用特性,字符流的源或目标通常是文本文件. Reader和Writer是java.io包中所有字符流的父类.由于它们都是抽象类,所以应使用 ...
- 八. 输入输出(IO)操作3.面向字符的输出流
面向字符的输出流都是类 Writer 的子类,其类层次结构如图 10-5 所示. 图10-5 Writer的类层次结构图 表 10-3 列出了 Writer 的主要子类及说明. 表 10-3 Writ ...
- Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式
解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式.面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和Out ...
- 八. 输入输出(IO)操作1.输入输出基本概念
输入输出(I/O)是指程序与外部设备或其他计算机进行交互的操作.几乎所有的程序都具有输入与输出操作,如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据等.通过输入和输出操作可以从外界接收信息, ...
- Java知多少(69)面向字节的输入输出流
字节流以字节为传输单位,用来读写8位的数据,除了能够处理纯文本文件之外,还能用来处理二进制文件的数据.InputStream类和OutputStream类是所有字节流的父类. InputStream类 ...
- 八. 输入输出(IO)操作7.文件的随机读写
Java.io 包提供了 RandomAccessFile 类用于随机文件的创建和访问.使用这个类,可以跳转到文件的任意位置读写数据.程序可以在随机文件中插入数据,而不会破坏该文件的其他数据.此外,程 ...
- 八. 输入输出(IO)操作6.文件与目录管理
目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率.Java 语言在 java.io 包中定义了一个 File 类专门用来管理磁盘文件和目录. 每个 Fi ...
- 八. 输入输出(IO)操作8.文件的压缩处理
Java.util.zip 包中提供了可对文件的压缩和解压缩进行处理的类,它们继承自字节流类OutputSteam 和 InputStream.其中 GZIPOutputStream 和 ZipOut ...
随机推荐
- Python全栈工程师(Linux基本操作)
ParisGabriel Python 入门基础 Linux :Ubuntu操作系统 首先我们说的是Linux操作系统常用的快捷键以及终端命令 一. VMware ...
- neutron floating ip 限速
查看浮动ip的id [root@10e131e69e14 oz]# openstack floating ip show 36.111.0.197 +---------------------+--- ...
- [译]如何去除pandas dataframe里面的Unnamed的列?
原文来源: https://stackoverflow.com/questions/43983622/remove-unnamed-columns-in-pandas-dataframe 问:我有一个 ...
- 微信小程序--背景图片手机无法预览
目前小程序好像没有支持手机预览背景本地图片,所以将本地图片改为网络图片链接就可以了 background: url("https://..../img/no.png") no-re ...
- BZOJ2716 [Violet 3]天使玩偶 【CDQ分治】
题目 输入格式 输出格式 输入样例 //样例太长就不贴了.... 输出样例 //见原题 提示 题解 我们将曼哈顿距离式子中的绝对值去掉,每次只考虑x,y比当前点小的更新答案. 为了使所有点都对答案进行 ...
- uoj228:基础数据结构练习题
题意:http://uoj.ac/problem/228 sol :线段树开根操作 对于节点x,可以在max[x]-min[x]<=1时直接做,转化为区间减或区间覆盖 #include< ...
- typedef函数用法
转载自:http://www.cnblogs.com/ggjucheng/archive/2011/12/27/2303238.html 引言 typedef 声明,简称 typedef,为现有类型创 ...
- Class-dump
What is class-dump? This is a command-line utility for examining the Objective-C runtime information ...
- myeclipse maven web项目配置
启用maven:window-->preference-->MyEclipse-->Maven4MyEclipse, 勾选复选框(Enable Mave4MyEclipse feat ...
- Sublime Text3配置SublimeREPL快捷键的方法(Python)
因为用sublime运行python,如果有input()函数,ctrl+b是不能输入数据的,所以下载安装了sublimeREPL进行调试. 但是sublimeREPL没有自定义快捷键,所以只有自己设 ...