1218对输入字节流的认识

int available( )
void close( )
void mark(int readlimit)
boolean markSupported( )
abstract int read( )
int read(byte[ ] b)
int read(byte[ ] b, int off, int len)
void reset( )
long skip(long n)
以我自己的理解和认识,我来解释一下这些方法吧,其实有很多地方我也不太理解,但我会在旁边把它注释出来,并能在以后的学习中理解并解决这些问题。

1.(不懂为什么返回值有abstract)abstract int read( )==》IOException
从输入流中读取数据的(?)下一个字节。返回0到255范围内的int字节值。如果因为已经到达流末尾而没有可用的字节,则返回值-1.(不懂下面这句话)在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。

2.int read(byte[ ] b)==》IOException
从输入流中读取一定数量的字节,并将其存储在(?)缓冲区数组 b 中。以整数形式返回实际的字节数。在输入数据可用、检测到文件末尾或者抛出异常前,此方法一直阻塞。
如果b的长度为0,则不读取任何字节并返回0;否则,尝试读取至少一个字节。如果因为流位于末尾而没有可用的字节,则返回值-1;否则,至少读取一个字节并将其存储在b中。
将读取的第一个字节存储在元素b[0]中,下一个存储在b[1]中,依次类推。读取的字节数最多等于b的长度。设k为实际读取的字节数;这些字节将存储在b[0]到b[k-1]的元素中,不影响b[k]到b[b.length-1]的元素。

3.int read(byte[ ] b ,int off ,int len)==》IOException
从此输入流中将最多len个字节的数据读入一个byte数组中。(?)如果len不为0,则在输入可用之前,该方法将阻塞;否则,不读取任何字节并返回0。

4.(不懂这个方法)long skip(long n)==》IOException
从输入流中跳过的字节数可能更少一些,甚至可能为0.如果n为负,则抛出IOException,即使InputStream超类的skip方法在这种情况下没有执行任何操作。返回实际跳过的字节数。
此方法跳过的字节可能多于底层实现文件中剩余的字节。这不会产生异常,并且跳过的字节数可能包括底层实现文件的EOF(文件结束符)之后的一些字节数。如果试图在跳过末尾之后读取流,那么会返回 -1(指示文件结束)。

5.int available()==》IOException
返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。下一次调用可能是同一个线程,也可能是另一个线程。一次读取或跳过此数量个字节不会发生阻塞,但读取或跳过的字节可能小于该数。

6.void close()==》IOException
关闭此文件输入流并释放与此流有关的所有系统资源。
如果此流有一个与之关联的通道,则关闭该通道。

未完待续。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值