同学你好,此数组的长度表示的是从该输入流读取最多b.length字节的数据到字节数组。是为了提高读取效率。默认情况下的read()方法是只能从输入流中读取一个字节长度的数据,使用了read(byte[] b)提高了每次从输入流中读取的字节数量,进而提高了读取效率。该字节数组并不是只能使用一次便不可再使用了,而是可以利用循环对文件反复对字节数组进行操作。
例如:
public void testFileInputOutputStream() {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
// 1.造文件
File srcFile = new File("imooc.txt");
File destFile = new File("imooc_copy.txt");
// 2.造流
fis = new FileInputStream(srcFile);
fos = new FileOutputStream(destFile);
// 3.复制的过程
byte[] buffer = new byte[5];//长度可自定义
int len;
while ((len = fis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fos != null) {
// 4.关闭流
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星