当前位置: 代码迷 >> J2EE >> 用java程序打的zip包和直接右键用WinRAR打的zip有区别,怎么处理
  详细解决方案

用java程序打的zip包和直接右键用WinRAR打的zip有区别,怎么处理

热度:386   发布时间:2016-04-21 23:35:24.0
用java程序打的zip包和直接右键用WinRAR打的zip有区别,怎么办啊
我现在调别人的接口,需要传一个zip包的路径。这个zip包有一个xml文件。我要做的是把xml文件压缩成zip包
我生成xml文件后,右键用WinRAR打的zip包。在调他们的接口,可以成功解析的我的xml文件。

然而我用java程序去打包,这个时候生产的zip包。去调他们的接口,居然不认识我的zip包,解析不了我的xml文件。
我把zip解压出来看了,有我的xml,而且xml的内容没有乱码,没有错,很完整。

为什么会有这样的情况。我快疯了。难道是打包的代码不对?我的代码生产的zip包,解压出来就是那个xml文件。

我的错是哪里啊? 谁知道一下啊?拜托了!!

能够把发个把xml打成zip包的代码给我更感谢!!

------解决方案--------------------
如果你生成的zip文件可以用WinRar打开并解压成功,那么错误就是他们而不是你的

是否你们约定的ZipEntry名字不一样(区分大小写)

错误的异常是什么?
------解决方案--------------------
我感觉是一样的  没什么区别!
------解决方案--------------------
public class Compress {

public static void main(String[] args) throws IOException {
File file = new File("D:/build.xml");
ZipOutputStream zipOutputStream = new ZipOutputStream(
new FileOutputStream(new File("D:/zip/xxx.zip")));
BufferedInputStream bufferdInputStream = new BufferedInputStream(
new FileInputStream(file));
byte[] buffer = new byte[1024];
zipOutputStream.putNextEntry(new ZipEntry(file.getName()));
int length = 0;
while (true) {
length = bufferdInputStream.read(buffer);
if (length < 0) {
break;
}
zipOutputStream.write(buffer, 0, length);
}
zipOutputStream.flush();
bufferdInputStream.close();
zipOutputStream.closeEntry();
zipOutputStream.close();
}

}
------解决方案--------------------
lz,不要考虑太多了,没什么区别得
  相关解决方案