使用write(buffer, 0, len)是解决数据多余的问题:
在你每read(byte[] buffer)一次后,它就将一定长度的数据写入到了buffer中,它的长度取决于以下情况 :
Read(char[] chr)方法从指定的文件读chr.length到chr字符数组中,如果chr.length大于文件中的字符长度,则数据全部放在chr数组中;如果chr.length < 文件中字符长度,读一次,就写人chr.length的数据,下次度接着上次读到的末尾继续读,并将第上一次写入的数据覆盖掉,如果再读到某次时,要读入的文件的数据长度〈 str.length,就依次覆盖,没有覆盖到的仍是上一次覆盖后的数据。
len = fis.read(buffer)返回的是每次读入的实际长度,如果不指定len,它会将上一次没被覆盖掉的数据写入,造成数据多余。 |