JAVA. FileInputStream 的 read()方法一次读取一个字节并返回 那返回类型不应该是byte吗 为什么是int呢
用io流复制文件的时候读取到的内容放在字节数组里 while(len=f.read(buf)!=-1)为什么write的时候却是write(buf,0,len)
追答因为从buf字节数组中往外写内容可能只写buf字节数组中的一部分,而不是全部。所以写内容是要给出数组的起始位置和要写内容的长度,例如从第2个字节到底8个字节则write(buf,1,7),因为数组索引都是从0开始。
而read(buf)读到字节数组中数据最大的长度是字节数组的长度。
我把有abcdtoo四个字母的文件用上面方法试了一下用write(buf)数组长度变了写到另一个文件的数据就变了 虽然write(buf)是一次读数组长度但是while条件里却已经定死能取到的数据是读取的那个文件里所有的字符了阿 怎么写到另一个文件就多了很多字符
本回答被网友采纳