八. 输入输出(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 ...
随机推荐
- Makefile编写记录
近期学习 Linux 需要使用 Makefile,网上搜罗了很多这方面的资料,所里在这里做一个整理. 1.静态模式 看一个例子: objects = foo.o bar.o all: $(object ...
- C#中的&运算
2是一个比较特殊的数. 2的1次方2 2的2次方4 2的3次方8 2的4次方16 2的5次方32 2的6次方64 2的7次方128 2的8次方256 2的9次方512 2的10次方1024 2的11次 ...
- Servlet 返回Json数据格式
其实就是把数据库中的数据查询出来拼接成一个Json数据 import dao.UserDao; import endy.User; import javax.servlet.ServletExcept ...
- 【转载】10个最佳ES6特性
译者按: 人生苦短,我用ES6. 原文: Top 10 ES6 Features Every Busy JavaScript Developer Must Know 译者: Fundebug 为了保证 ...
- position:absolute和float隐式改变display为inline-block
不论之前是什么类型的元素(display:none除外), 只要设置了position:absolute或float, 都会让元素以display:inline-block的方式显示, 可以设置长宽, ...
- webpack的css,less,sass中使用绝对路径
用法: 使用~表示绝对路径,如下: @import "~otherfile.scss" .yourClass { background: url('~img/wallpaper.p ...
- bzoj 3507 DP+哈希
[Cqoi2014]通配符匹配 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 541 Solved: 235[Submit][Status][Dis ...
- 搭建自己的YUM源HTTP服务器
createrepo是linux下的创建仓库的软件包.create是创建的意思,repo是repository的缩写,是仓库的意思.yum(Yellowdog Updater,Modified)主要的 ...
- vue倒计时页面
https://www.cnblogs.com/sichaoyun/p/6645042.html https://blog.csdn.net/sinat_17775997/article/detail ...
- .NET 4.0中使用sqlite
原文发布时间为:2011-12-10 -- 来源于本人的百度文章 [由搬家工具导入] http://www.csharpcity.com/sqlite-ado-net-c-4-0/ Getting S ...