这是一对继承于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 -- 要读取的字节数。