(一)java.io.DataInput接口及源码详解
2018-02-13 18:11
351 查看
简介:java.io.DataInput接口提供用于读取二进制流字节并重建为任何java原始数据类型,也提供了一个转换为UTF-8编码的字符串类型方法;
一般来说,这个接口的所有读取方法都是正确的,如果在读取所需字节数之前到达文件末尾,将会抛出EOFException(也就是IOException异常的一种)异常。如果除了到达文件末尾不能读取字节的原因,不会抛出IOException 异常而会抛出EOFException异常,特别的,如果输入流被关闭了一个IOException异常将会抛出。
接口方法分析:
一般来说,这个接口的所有读取方法都是正确的,如果在读取所需字节数之前到达文件末尾,将会抛出EOFException(也就是IOException异常的一种)异常。如果除了到达文件末尾不能读取字节的原因,不会抛出IOException 异常而会抛出EOFException异常,特别的,如果输入流被关闭了一个IOException异常将会抛出。
接口方法分析:
/**从输入流中读取一些字节并存入缓冲字节数组b中,读取的字节数等于数组b的长度, * 此方法阻塞,直到下列情况之一发生: * b.length输入的字节是可用的,在这种情况下正常返回; * 文件结束检测,在这种情况下将会抛出EOFException异常; * I/O错误发生,在这种情况下将会抛出IOExcetpion而不会抛出EOFException */ void readFully(byte b[]) throws IOException;
/** * 从输入流中读取len个字节 * 此方法阻塞,知道下列情况之一发生: * 输入的len个字节数据是可用的,在这种情况下正常返回; * 文件结束检测,在这种情况下将会抛出EOFException异常; * I/O错误发生,在这种情况下将会抛出IOExcetpion而不会抛出EOFException */ void readFully(byte b[], int off, int len) throws IOException;
/** * 尝试跳过来自输入流的n个字节数据,丢弃跳过的字节,但是,他可能跳过一些较小的字节数,可能为0个, * 这可能是由许多条件引起的;在跳过n个字节之前到达文件的结尾只有一种可能性,这个方法不会抛出EOFException异常, * 将会返回实际跳过的字节数。 */ int skipBytes(int n) throws IOException
/** * 读取一个输入字节,如果这个字节非0,就返回true,如果是0返回false, * 这种方法适用于读取字节的数据输出的接口writeboolean写的方法 */ boolean readBoolean() throws IOException;
/** * 读取并返回一个输入字节,在-128到127之间,字节被视为有符号值,包括, * 这种方法适用于读取接口DataOutput的writeByte方法写入的字节; * */ byte readByte() throws IOException;
/** * 读取一个输入字节,0将其扩展到int,并返回结果,因此在0到255的范围内, * 这个方法适用于读取接口DataOutput的writeByte方法写入的字节; * */ int readUnsignedByte() throws IOException;
/** * 读取两个输入字节,并返回一个short类型值,如果第一个读取字节是a,第二个读取字节是b, * 那么返回的值是(short)((a << 8) | (b & 0xff)); * 这个方法适合读取DataOutput接口的writeShort方法写入的数据; */ short readShort() throws IOException;
/** * 读取两个输入字节,并在0到65535范围内返回int值;让第一个读取的字节是a,第二个读取的字节是b,返回的值是: * (((a & 0xff) << 8) | (b & 0xff)) * 这个方法适合读取接口DataOutput的writeShort方法写入的数据,如果方法writeShort写入的数据是在0到65535之间, * 返回一个未签名的16位值; */ int readUnsignedShort() throws IOException;
/** * 读取两个字节并返回一个char类型值,a做为第一个读取的字节,b做为第二个读取字节,结果将会返回 * (char)((a << 8) | (b & 0xff)) * 该方法将会适合读取DataOutput接口的writeChar方法写入的数据,返回一个char类型数据; */ char readChar() throws IOException;
/** * 读取四个输入字节并返回一个int值,让a-d做为读取的字节,将会返回 * (((a & 0xff) << 24) | ((b & 0xff) << 16) | ((c & 0xff) << 8) | (d & 0xff)) * 该方法适合读取接口DataOutput的writeInt方法写入的数据; * 返回读取到的int值; */ int readInt() throws IOException;
/** * 读取八个输入字节并返回一个long数据,让a-h做为读取到的八个字节,结果将会返回 * (((long)(a & 0xff) << 56) | * ((long)(b & 0xff) << 48) | * ((long)(c & 0xff) << 40) | * ((long)(d & 0xff) << 32) | * ((long)(e & 0xff) << 24) | * ((long)(f & 0xff) << 16) | * ((long)(g & 0xff) << 8) | * ((long)(h & 0xff))) * 该方法适合读取接口DataOutput的writeLong方法; * 返回一个long类型数据; */ long readLong() throws IOException;
/** * 读取四个输入字节并返回一个float类型数据,这是通过首先在完全的readInt方法构建一个int值的方式, * 然后以该方法Float.intBitsToFloat将这个int值转换为浮点数;这个方式适合读取接口DataOutput的writeFloat方法 * 写入的数据,最后返回一个float值; */ float readFloat() throws IOException;
/** * 读取八个输入字节并返回一个double数据类型,首先会构建一个long类型的数据,确切的说就是使用readLong方法, * 然后将这个long数据转换为double类型使用Double.longBitsToDouble方法; * 这个方法适合读取接口DataOutput的writeDouble方法写入的数据; * 返回一个double类型数据 */ double readDouble() throws IOException;
/** * 从输入流读取下一行文本,它读取连续字节,将每个字节分别转换为字符,直到遇到行终止符或文件结束符为止; * 然后将读取到的字符作为字符串返回。注意,因为该方法处理的是字节,所以它不支持完整的unicode字符集的输入。 * 如果在读取一个字节之前遇到文件结尾,将会返回null,否则,每个读取到的字节被转化成字符char。如果遇到字符‘\n’, * 这个将会被丢弃,并停止读取;如果遇到字符‘\r’,它将会被丢弃,如果读取到的字节转换为字符‘\n’, * 这样将会被丢弃,并继续读取;如果在遇到字符‘\n’和‘\r’之前遇到文件结尾,继续读取,一旦阅读停止, * 将会返回所有读取到未被丢弃的字符作为字符串返回,依次采取。请注意,此字符串中的每个字符都有一个值小于\ u0100, * 即(炭)256。 */ String readLine() throws IOException;
/** * 读取一个字符串,已使用修改后的UTF-8编码格式。然后这些字符将会作为字符串返回, * */ String readUTF() throws IOException;
相关文章推荐
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解
- (一)java.io.DataInput接口及源码详解