所有类


java.io
类 DataInputStream

java.lang.Object
  继承者 java.io.InputStream
      继承者 java.io.FilterInputStream
          继承者 java.io.DataInputStream
所有已实现的接口:
Closeable, DataInput

public class DataInputStream
   
   
   
   
   
extends FilterInputStream
implements DataInput

数据输入流允许应用程序以与机器无关方式从基础输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。

从以下版本开始:
JDK1.0
另请参见:
DataOutputStream

字段摘要
 
从类 java.io.FilterInputStream 继承的字段
in
 
构造方法摘要
DataInputStream(InputStream in)
          使用指定的基础 InputStream 创建一个 DataInputStream。
 
方法摘要
 int read(byte[] b)
          从所包含的输入流中读取一定数量的字节,并将它们存储到缓冲区数组 b 中。
 int read(byte[] b, int off, int len)
          从所包含的输入流中将 len 个字节读入一个字节数组中。
 boolean readBoolean()
          参见 DataInputreadBoolean 方法的常规协定。
 byte readByte()
          参见 DataInputreadByte 方法的常规协定。
 char readChar()
          参见 DataInputreadChar 方法的常规协定。
 double readDouble()
          参见 DataInputreadDouble 方法的常规协定。
 float readFloat()
          参见 DataInputreadFloat 方法的常规协定。
 void readFully(byte[] b)
          参见 DataInputreadFully 方法的常规协定。
 void readFully(byte[] b, int off, int len)
          参见 DataInputreadFully 方法的常规协定。
 int readInt()
          参见 DataInputreadInt 方法的常规协定。
 String readLine()
          已过时。 该方法无法将字节正确转换为字符。从 JDK 1.1 开始,读取文本行的首选方法是使用 BufferedReader.readLine() 方法。对于使用 DataInputStream 类读取文本行的程序,可以转而使用 BufferedReader 类,实现方式是通过将以下形式的代码:
     DataInputStream d = new DataInputStream(in);
 
替换为:
     BufferedReader d
          = new BufferedReader(new InputStreamReader(in));
 
 long readLong()
          参见 DataInputreadLong 方法的常规协定。
 short readShort()
          参见 DataInputreadShort 方法的常规协定。
 int readUnsignedByte()
          参见 DataInputreadUnsignedByte 方法的常规协定。
 int readUnsignedShort()
          参见 DataInputreadUnsignedShort 方法的常规协定。
 String readUTF()
          参见 DataInputreadUTF 方法的常规协定。
static String readUTF(DataInput in)
          从流 in 中读取用 UTF-8 修改版格式编码的 Unicode 字符格式的字符串;然后以 String 形式返回此字符串。
 int skipBytes(int n)
          参见 DataInputskipBytes 方法的常规协定。
 
从类 java.io.FilterInputStream 继承的方法
available, close, mark, markSupported, read, reset, skip
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

DataInputStream

public DataInputStream(InputStream in)
使用指定的基础 InputStream 创建一个 DataInputStream。

参数:
in - 指定输入流
方法详细信息

read

public final int read(byte[] b)
               throws IOException
从所包含的输入流中读取一定数量的字节,并将它们存储到缓冲区数组 b 中。以整数形式返回实际读取的字节数。在输入数据可用、检测到文件末尾 (end of file) 或抛出异常之前,此方法将一直阻塞。

如果 b 为 null,则抛出 NullPointerException。如果 b 的长度为零,则不读取字节并返回 0;否则试图读取至少一个字节。如果因为该流在文件末尾而无字节可用,则返回值 -1;否则至少读取一个字节并将其存储到 b 中。

将读取的第一个字节存储到元素 b[0] 中,将下一个字节存储到 b[1] 中,依此类推。读取的字节数至多等于 b 的长度。设 k 为实际读取的字节数;这些字节将存储在从 b[0]b[k-1] 的元素中,b[k]b[b.length-1] 的元素不受影响。

如果因为文件末尾以外的其他原因而无法读取第一个字节,则抛出 IOException。尤其在输入流已关闭的情况下,将抛出 IOException

read(b) 方法与以下方法的效果相同:

 read(b, 0, b.length) 
 

覆盖:
FilterInputStream 中的 read
参数:
b - 存储读取数据的缓冲区。
返回:
读入缓冲区的字节总数,如果因为已经到达流的末尾而没有更多的数据,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
FilterInputStream.in, InputStream.read(byte[], int, int)

read

public final int read(byte[] b,
                      int off,
                      int len)
               throws IOException
从所包含的输入流中将 len 个字节读入一个字节数组中。尽量读取 len 个字节,但可能读取较少的字节数,该字节数也可能为零。以整数形式返回实际读取的字节数。

在输入数据可用、检测到文件末尾或抛出异常之前,此方法将阻塞。

如果 bnull,则抛出 NullPointerException

如果 off 为负,或 len 为负,抑或 off+len 大于数组 b 的长度,则抛出 IndexOutOfBoundsException

如果 len 为零,则不读取字节并返回 0;否则至少试图读取一个字节。如果因为该流在文件未尾而无字节可用,则返回 -1 值;否则至少读取一个字节并将其存储到 b 中。

将读取的第一个字节存储到元素 b[off] 中,将下一个字节存储到 b[off+1] 中,依此类推。读取的字节数至多等于 len。设 k 为实际读取的字节数;这些字节将存储在 b[off]b[off+k-1] 的元素中,b[off+k]b[off+len-1] 的元素不受影响。

在所有的情况下,b[0]b[off] 的元素和 b[off+len]b[b.length-1] 的元素都不受影响。

如果因为文件末尾以外的其他原因而无法读取第一个字节,则抛出 IOException。尤其在输入流已关闭的情况下,将抛出 IOException

覆盖:
FilterInputStream 中的 read
参数:
b - 存储读取数据的缓冲区。
off - 数据的起始偏移量。
len - 读取的最大字节数。
返回:
读入缓冲区的字节总数,如果因为已经到达流的末尾而没有更多的数据,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
FilterInputStream.in, InputStream.read(byte[], int, int)

readFully

public final void readFully(byte[] b)
                     throws IOException
参见 DataInputreadFully 方法的常规协定。

从所包含的输入流中读取此操作需要的字节。

指定者:
接口 DataInput 中的 readFully
参数:
b - 存储读取数据的缓冲区。
抛出:
EOFException - 如果此输入流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。
另请参见:
FilterInputStream.in

readFully

public final void readFully(byte[] b,
                            int off,
                            int len)
                     throws IOException
参见 DataInputreadFully 方法的常规协定。

从所包含的输入流中读取此操作需要的字节。

指定者:
接口 DataInput 中的 readFully
参数:
b - 存储读取数据的缓冲区。
off - 数据的起始偏移量。
len - 要读取的字节数。
抛出:
EOFException - 如果此输入流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。
另请参见:
FilterInputStream.in

skipBytes

public final int skipBytes(int n)
                    throws IOException
参见 DataInputskipBytes 方法的常规协定。

从所包含的输入流中读取此操作需要的字节。

指定者:
接口 DataInput 中的 skipBytes
参数:
n - 要跳过的字节数。
返回:
实际跳过的字节数。
抛出:
IOException - 如果发生 I/O 错误。

readBoolean

public final boolean readBoolean()
                          throws IOException
参见 DataInputreadBoolean 方法的常规协定。

从所包含的输入流中读取此操作需要的字节。

指定者:
接口 DataInput 中的 readBoolean
返回:
读取的 boolean 值。
抛出:
EOFException - 如果此输入流已经到达末尾。
IOException - 如果发生 I/O 错误。
另请参见:
FilterInputStream.in

readByte

public final byte readByte()
                    throws IOException
参见 DataInputreadByte 方法的常规协定。

从所包含的输入流中读取此操作需要的字节。

指定者:
接口 DataInput 中的 readByte
返回:
此输入流的下一个字节,以有符号的 8 位 byte 的形式。
抛出:
EOFException - 如果此输入流已经到达末尾。
IOException - 如果发生 I/O 错误。
另请参见:
FilterInputStream.in

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部