FileOutputStream&FileInputStream

这是一对继承于InputStream和OutputStream的类,用于本地文件读写(二进制格式读写并且是顺序读写,读和写要分别创建出不同的文件流对象);

本地文件读写编程的基本过程为:

①  生成文件流对象(对文件读操作时应该为FileInputStream类,而文件写应该为FileOutputStream类);

②  调用FileInputStream或FileOutputStream类中的功能函数如read()、write(int b)等)读写文件内容;

③  关闭文件(close())。

解释代码:

OutputStream output = response.getOutputStream();
FileInputStream fis = new FileInputStream(path);
byte[] b = new byte[10240];
int i = 0;
while ((i = fis.read(b)) > 0) {

//fis.read(b)这个方法是先规定一个数组长度,将这个流中的字节缓冲到数组b中,返回的这个数组中的字节个数,这个缓冲区没有满的话,则返回真实的字节个数,到未尾时都返回-1
output.write(b, 0, i);   //用write 就能将 b字符组的内容 从下标0处开始,输出i个字符到该流初始化的文件
}


InputStream的三个read的区别

1.read
这个方法是对这个流一个一个字节的读,返回的int就是这个字节的int表示方式

2.read(byte[] b)
这个方法是先规定一个数组长度,将这个流中的字节缓冲到数组b中,返回的这个数组中的字节个数,这个缓冲区没有满的话,则返回真实的字节个数,到未尾时都返回-1

3.read(byte[] b, int off, int len)

  • b -- 目标字节数组。

  • off -- 在数组b在其中写入数据的起始位置的偏移。

  • len -- 要读取的字节数。

off是偏移量,即从 数组 b的第off个位置起读取 len个字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值