fnis输出字节缓冲区太小_字节流的输入输出,JAVA基础知识笔记

字节流

  • 字节流是指流的内容是字节,字节流也称为二进制流
  • 所有的字节输入流继承了InputStream抽象类;
  • 所有的字节输出流继承了OutputStream抽象类。
  • InputStream和OutputStream抽象类定义了最基本的输入和输出方法

InputStream的read() 方法

ed776e811d8ff100e26405e0c7bf4785.png

InputStream类的主要方法

InputStream类提供了以下用于读取字节流的方法:

  • public abstract int read() throws IOException

该方法的作用是从来源输入流中读取数据的下一个字节到Java程序中

该方法的返回值是从0到255的int类型的值

如果没有可用的字节,因为已经达到输入流的末尾,则返回‐1

该方法调用的时候只读取一个字节,因此往往放在while之后的条件判断中,例如:

while ( (len = inputstream.read()) != ‐1)

InputStream还提供了用于批量读取字节的read方法,包括:

public int read(byte[] b) throws IOExceptionpublic int read(byte[] b, int off, int len) throws IOException

第一个方法从来源输入流读取一定数量的字节数,并存储到缓冲区数组b中,返回值为实际读取的字节数

  • 该方法运行时读取一定数量的字节数,Java会尽可能读取的字节数数组b的长度,但也有可能读取少于b长度的字节数
  • 如果没有可用的字节,因为已经达到输入流的末尾,则返回‐1

第二个方法多了两个参数,off 和 len。

  • off 是存储到数组b中时元素下标的偏移量,而len则是要读取的字节数

OutputStream的write方法

3a2e48545f796de4b35df0f7020bed12.png

OutputStream类的主要方法

OutputStream类则提供了write方法用于将指定的数据写入到输出流中

最简单的write方法如下:

  • public void write(int b);

该方法的作用是往输出流中写入一个字节b

OutputStream类还包括以下2个方法:

  • void write( byte b[ ] );

该方法的作用是往输出流中写一个字节数组b

  • void write( byte b[ ], int off, int len );

该方法的作用是把字节数组b中从下标off开始长度为len的字节写入到输出流中

OutputStream中还包括了flush方法:

  • public void flush()

该方法是刷空输出流,并输出所有被缓存的字节

由于某些流支持缓存功能,flush法将把缓存中所有内容强制输出到流中。

OutputStream还提供了关闭输出流的方法:

  • public void close();

该方法在输出流操作完毕后必须关闭否则可能会产生异常

实际上,InputStream类也提供了close方法。

考虑到IO处理时可能会产生异常,一般在编程时,把close方法的调用

在finally语句块中保证close方法确定会被调用执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值