当前位置: 技术问答>java相关
关于IO Stream Chain的问题。
来源: 互联网 发布时间:2015-04-17
本文导语: 在做数据处理时,发现这样一个问题,不知各位有何高见: 首先将数据进行压缩(ZipOutputStream),在加密(CryptOutputStream),然后输出到文件中(FileOutputStream)。 此过程想用IO Stream Chain来实现: FileOutputStream fos = new FileOutp...
在做数据处理时,发现这样一个问题,不知各位有何高见:
首先将数据进行压缩(ZipOutputStream),在加密(CryptOutputStream),然后输出到文件中(FileOutputStream)。
此过程想用IO Stream Chain来实现:
FileOutputStream fos = new FileOutputStream(sTmpFileName);
CryptOutputStream cos = new CryptOutputStream(fos);
ZipOutputStream zipos = new ZipOutputStream(cos);
zipos.write(data);
但发现:zipos会将data分成512字节一点一点处理,这就将使CryptOutputStream对每512字节进行处理,没必要也降低了效率。
不知各位有何办法解决?
(不用IO Stream Chain,而将ZipOutputStream写入文件,再读入由CryptOutputStream进行处理是可以的,但不知有什么更好的办法么?)
首先将数据进行压缩(ZipOutputStream),在加密(CryptOutputStream),然后输出到文件中(FileOutputStream)。
此过程想用IO Stream Chain来实现:
FileOutputStream fos = new FileOutputStream(sTmpFileName);
CryptOutputStream cos = new CryptOutputStream(fos);
ZipOutputStream zipos = new ZipOutputStream(cos);
zipos.write(data);
但发现:zipos会将data分成512字节一点一点处理,这就将使CryptOutputStream对每512字节进行处理,没必要也降低了效率。
不知各位有何办法解决?
(不用IO Stream Chain,而将ZipOutputStream写入文件,再读入由CryptOutputStream进行处理是可以的,但不知有什么更好的办法么?)
|
这个用BufferedStream恐怕也没用吧,那个512是ZipOutputStream里面设死了的。如果你不需要压缩多个文件(即ZipEntry),可以用DeflaterOutputStream,这个可以设buffer大小的。
|
用相应的Buffer Stream