我必须在我的java程序中使用pkzip来压缩(因为标准的java例程不能在大型机上工作),我认为它是正确的压缩,但是它需要很长时间才能完成。这是我的代码
Runtime myruntime = Runtime.getRuntime();
Process newproc = myruntime.exec("c:\\app\\pkzipc.exe -add c:\\output\\test.zip c:\\doc\\foo.pdf c:\\doc\\bar.doc"");foo.pdf和bar.doc分别约为20 min,如果通过命令行执行,则需要大约1秒的时间来压缩,但是当我使用java时,完成压缩需要30分钟到1小时。知道为什么吗?
发布于 2012-03-27 03:21:49
您需要确保您正在读取子进程的标准输出流和错误流。如果pkzip生成输出,那么它将由操作系统缓冲,如果缓冲区被填满,那么您可以期望子进程阻塞,直到缓冲区被清除。
Process对象具有获取输入、输出和错误流的方法。创建从输出流和错误流读取的新线程,并将它们输送到System.out和System.err,或者在不关心输出的情况下丢弃输出。
发布于 2012-03-27 03:19:10
尝试使用Java的java.util.zip API来操作.zip文件,看看教程。
https://stackoverflow.com/questions/9882917
复制相似问题