InputStream类和OutputStream类

流的概念:
  • 流是字节序列的抽象概念。
  • 文件是数据的静态存储形式,而流是指数据传输时的形态。
  • 流类分为两个大类:节点流类和过滤流类(也叫处理流类)。

InputStream类

程序可以从中连续读取字节的对象叫输入流,在JAVA中,用InputStream类来描述所有输入流的抽象概念。FileInputStream类是InputStream类的.
 
InputStream类的方法:
  1. int read() 从输入流中读取一个字节的内容,并且把这个内容以整数的形式返回。如果碰到流的结束处,那么返回的值就是“-1”;如果流没有结果,但临时没有数据可读,那read方法就将阻塞运行程序的执行过程,至到流中有新的数据可读。(流可以看做是一个通道)read方法将读取的每一个字节复制到int类型(int类型占用4个字节)中的最低字节,其他高字节的部份全部设置为零.
  2. int read(byte[] b) 用于从输入流读取若干个字节的内容到字节数组b中,最多读取的字节个数就是这个字节数组的长度,由于这个流中不一定有这么多的字节可读,
  3. int read(byte[] b,int off,int len) 这每次读取len个字节,并放入到字节数组b中,并且是以角标为off的位置依次放入。那么实际上读取的个数以返回值为准。
  4. long skip(long n) 跳过输入流中的n个字节,并返回实际跳过的字节数。这个方法主要用于包装流中,包装类中流可以跳跃,一般的低层流不能跳跃.
  5. int available() 返回当前输入流中可读的字节数,在使用时我们可以先用available方法来判断流中是否有可读数据,再用read方法进行读取,这样可以防止程序发生阻塞.(但一般我只使用read方法直接来读取)
  6. void mark(int readlimit) 在输入流中建立一个标记,readlimit表示在建立标记地方开始最多还能读取多少个字节的内容。(用于包装类的方法)
  7. void reset() 与mark方法配合使用,用mark方法在a 处做标记后再读取b个字节并调用reset方法,当下次再读时就从a的地方开始读取。(reset方法是让指针回到以前做的标记处)
  8. boolean markSupported() 返回当前流对象是否支持mark和reset操作
  9. void close()  用于完成一个流的所有操作以后,关闭这个流,放弃与这个流相关的所有资源。
 
InputStream是抽象类,程序中实际使用的是InputStream的各种子类对象,不是所有的子类都会支持InputStream中定义的某些方法。比如skip,mark,reset在节点流中不适用,它们是用于包装输入流。
 
OutputStream类
 
程序可以向其中连续写入字节的对象叫输出流,在JAVA中,用OutputStream类来描述所有输出流的抽象概念。FileOutputStream类是OutputStream类的子类。
 
OutputStream类的方法:
 
  1. void write(int b) 将一个整数中的最低一个字节中的内容写到输出流中,高字节部份被弃。
  2. void write(byte[] b) 将字节数组中的所有内容写入到输出流对象中。
  3. void write(byte[] b,int off,int len) 将字节数组b中从off位置开始的len个字节写入到输出流对象中.
  4. void flush() 将内存缓冲区的内容完全清空,新输出到IO设备当中。
  5. void close() 关闭输出流对象。

InputStream类和OutputStream类


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值