IO流文档InputStream / OutputStream
IO流文档是Java语言中的一种基本概念,用于实现输入/输出操作。IO流可以分为两大类:输入流(InputStream)和输出流(OutputStream)。
InputStream
InputStream是Java中的一种抽象类,用于读取数据。InputStream提供了多种方法来读取数据,包括:
* `read()`: 读取单个字节数据
* `int read()`: 读取单个字节数据,并返回读取的字节数
* `read(byte[] b)`: 读取多个字节数据,并将其存储在 byte 数组中
* `read(byte[] b, int off, int len)`: 读取多个字节数据,并将其存储在 byte 数组中,from指定的偏移量和长度
* `skip(long n)`: 跳过指定数量的字节
* `int available()`: 返回可以读取的字节数
* `mark()`: 标记当前位置,以便后续reset
* `reset()`: 将流重置到标记的位置
* `boolean markSupported()`: 是否支持标记
* `close()`: 关闭流
InputStream有多种实现类,包括:
* `ByteArrayInputStream`: 将byte数组转换为InputStream
* `StringBufferInputStream`: 将StringBuffer对象转换为InputStream
* `FileInputStream`: 将文件转换为InputStream
* `PipedInputStream`: 将管道转换为InputStream
* `FilterInputStream`: 过滤InputStream
* `DataInputStream`: 读取基本数据类型
* `BufferedInputStream`: 缓冲InputStream
* `LineNumberInputStream`: 读取行号
* `SequencedInputStream`: 读取序列InputStream
* `PushbackInputStream`: 将InputStream推回
OutputStream
OutputStream是Java中的一种抽象类,用于写入数据。OutputStream提供了多种方法来写入数据,包括:
* `write()`: 写入单个字节数据
* `write(int b)`: 写入单个字节数据
* `write(byte[] b)`: 写入多个字节数据
* `write(byte[] b, int off, int len)`: 写入多个字节数据,从指定的偏移量和长度
* `flush()`: 刷新缓冲区
* `close()`: 关闭流
OutputStream有多种实现类,包括:
* `ByteArrayOutputStream`: 将OutputStream转换为byte数组
* `FileOutputStream`: 将OutputStream转换为文件
* `PipedOutputStream`: 将OutputStream转换为管道
* `FilterOutputStream`: 过滤OutputStream
* `DataOutputStream`: 写入基本数据类型
* `BufferedOutputStream`: 缓冲OutputStream
* `PrintStream`: 打印OutputStream
Stream的类型
Stream可以分为两种类型:字节流和字符流。字节流用于读取二进制数据,而字符流用于读取文本数据。字节流包括InputStream和OutputStream,字符流包括Reader和Writer。
Stream的操作
Stream可以进行多种操作,包括:
* 读取数据:使用InputStream读取数据
* 写入数据:使用OutputStream写入数据
* 复制流:使用InputStream和OutputStream复制流
* 转换流:使用InputStream和OutputStream转换流
IO流是Java语言中的一种基本概念,用于实现输入/输出操作。InputStream和OutputStream是IO流的两个基本类,提供了多种方法来读取和写入数据。