一般来说BufferedOutputStream一般放在所有一层层OutputStream的最外面。比如要写到一个文件,肯定是是
但是 ZipOutputStream都是,zos.putNextEntry加一个zip内的文件路径,接下去写入的stream都表示是这个文件路径的数据了。
BufferedOutputStream如果裹在zos外面的话,必须得写入完后flush一下。 不然会把上一个zipentry的数据写到下个zipentry里去了。
如果直接用ZipOutputStream照理也有buf,也得flush,但是好像没flush也没问题。
所以这时最好把BufferedOutputStream放ZipOutputStream里面。