字节序列来源(stream)
文件,网络,内存块
面向字节的流不便于处理Unicode形式(因为Unicode中每个字符都使用多个字节来表示),所以出现了Reader和writer
几个接口
- java.io.Closeable 方法 close()inputstream outputStream Reader Writer 都实现了该接口
- java.io.Flushable 方法 flush() outputStream Write实现了该接口
- java.lang.Readable 方法 read()
- java.lang.Appendable 方法 append()
- java.lang.CharSequence
char
序列提供统一的只读访问
已知实现类:
char | charAt(int index) 返回指定索引的 char 值。 |
int | length() 返回此字符序列的长度。 |
CharSequence | subSequence(int start, int end) 返回一个新的 CharSequence ,它是此序列的子序列。 |
String | toString() 返回一个包含此序列中字符的字符串,该字符串与此序列的顺序相同。 |
inputStream主要方法:
int | available() 返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。 |
void | close() 关闭此输入流并释放与该流关联的所有系统资源。 |
void | mark(int readlimit) 在此输入流中标记当前的位置。 |
boolean | markSupported() 测试此输入流是否支持 mark 和 reset 方法。 |
abstract int | read() 从输入流中读取数据的下一个字节。 |
int | read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。 |
int | read(byte[] b, int off, int len) 将输入流中最多 len 个数据字节读入 byte 数组。 |
void | reset() 将此流重新定位到最后一次对此输入流调用 mark 方法时的位置。 |
long | skip(long n) 跳过和丢弃此输入流中数据的 n 个字节。 |
另外几个接口
- java.io.DataInput
- java.io.ObjectInput
- java.io.DataOutput
- java.io.ObjectOutput
DataInput
接口用于从二进制流中读取字节,并根据所有 Java 基本类型数据进行重构。
对于此接口中的所有数据读取例程来说,如果在读取所需字节数之前已经到达文件末尾 (end of file),则将抛出
EOFException
(
IOException
的一种)。
如果因为到达文件末尾以外的其他原因无法读取字节,则将抛出 IOException
而不是
EOFException
。尤其是,在输入流已关闭的情况下,将抛出
IOException
。
boolean | readBoolean() 读取一个输入字节,如果该字节不是零,则返回 true ,如果是零,则返回 false 。 |
byte | readByte() 读取并返回一个输入字节。 |
char | readChar() 读取两个输入字节并返回一个 char 值。 |
double | readDouble() 读取八个输入字节并返回一个 double 值。 |
float | readFloat() 读取四个输入字节并返回一个 float 值。 |
void | readFully(byte[] b) 从输入流中读取一些字节,并将它们存储在缓冲区数组 b 中。 |
void | readFully(byte[] b, int off, int len) 从输入流中读取 len 个字节。 |
int | readInt() 读取四个输入字节并返回一个 int 值。 |
String | readLine() 从输入流中读取下一文本行。 |
long | readLong() 读取八个输入字节并返回一个 long 值。 |
short | readShort() 读取两个输入字节并返回一个 short 值。 |
int | readUnsignedByte() 读取一个输入字节,将它左侧补零 (zero-extend) 转变为 int 类型,并返回结果,所以结果的范围是 0 到 255 。 |
int | readUnsignedShort() 读取两个输入字节,并返回 0 到 65535 范围内的一个 int 值。 |
String | readUTF() 读入一个已使用 UTF-8 修改版格式编码的字符串。 |
int | skipBytes(int n) 试图在输入流中跳过数据的 n 个字节,并丢弃跳过的字节。 |