代码如下
public static void main(String[] args) {
byte[] test = new byte[100];
for (int i = 0; i < test.length; i++) {
test[i] = (byte) i;
}
ByteArrayInputStream bins = new ByteArrayInputStream(test);
DataInputStream dins = new DataInputStream(bins);
try {
System.out.println("第一次读取前dins有效长度:" + dins.available());
System.out.println("第一次读取一个字节:" + dins.readByte());
System.out.println("第一次读取又读取一个字节:" + dins.readByte());
System.out.println("第一次读取后dins有效长度:" + dins.available());
dins.close();
bins.close();
System.out.println("第一次读取后原字节数组的长度:" + test.length);
ByteArrayInputStream bins1 = new ByteArrayInputStream(test);
DataInputStream dins1 = new DataInputStream(bins);
System.out.println("第二次读取前dins1有效长度:" + dins1.available());
System.out.println("第二次读取一个字节:" + dins1.readByte());
System.out.println("第一次读取又读取一个字节:" + dins1.readByte());
System.out.println("第一次读取后dins有效长度:" + dins1.available());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
输出内容如下
第一次读取前dins有效长度:100
第一次读取一个字节:0
第一次读取又读取一个字节:1
第一次读取后dins有效长度:98
第一次读取后原字节数组的长度:100
第二次读取前dins1有效长度:98
第二次读取一个字节:2
第一次读取又读取一个字节:3
第一次读取后dins有效长度:96