重新创建目录结构并从 Java 中的 zip 文件的字节数组中提取文件
Recreate Directory Structure and extract Files From byte array of a zip file in Java
我有一个 zip 文件的字节数组,我需要从中创建 zip 文件,然后解压缩其中的文件和文件夹。
我尝试这样做,但得到的 zip 条目为空
{
ResponseEntity<byte[]> result = restTemplate.exchange(builder.build().toString(), HttpMethod.GET, httpEntity, byte[].class);
ZipInputStream zipStream = new ZipInputStream(new ByteArrayInputStream(result.getBody()))
ZipEntry entry = null;
while ((entry = zipStream.getNextEntry()) != null)
}
Zip 文件就像
- 目录 -> b.txt
- 目录 -> x.php ,a.txt
提前致谢
好的,我成功地以编程方式下载了您上面 link 的文件:
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
acceptableMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);
HttpHeaders headers = new HttpHeaders();
headers.setAccept(acceptableMediaTypes);
RestTemplate restTemplate = new RestTemplate();
HttpEntity<String> httpEntity = new HttpEntity<String>(headers);
ResponseEntity<byte[]> result = restTemplate.exchange( "someurl deleted On purpose",
HttpMethod.GET,
httpEntity,
byte[].class );
ZipInputStream zipStream = new ZipInputStream(new ByteArrayInputStream(result.getBody()));
ZipEntry entry = null;
while ((entry = zipStream.getNextEntry()) != null)
{
System.out.println( "entry: " + entry );
}
输出为:
entry: bridge2cart/
entry: bridge2cart/config.php
entry: bridge2cart/bridge.php
entry: readme.txt
所以您可能没有请求正确的媒体类型,或者 URL 编码不正确。
我有一个 zip 文件的字节数组,我需要从中创建 zip 文件,然后解压缩其中的文件和文件夹。
我尝试这样做,但得到的 zip 条目为空
{
ResponseEntity<byte[]> result = restTemplate.exchange(builder.build().toString(), HttpMethod.GET, httpEntity, byte[].class);
ZipInputStream zipStream = new ZipInputStream(new ByteArrayInputStream(result.getBody()))
ZipEntry entry = null;
while ((entry = zipStream.getNextEntry()) != null)
}
Zip 文件就像
- 目录 -> b.txt
- 目录 -> x.php ,a.txt
提前致谢
好的,我成功地以编程方式下载了您上面 link 的文件:
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
acceptableMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);
HttpHeaders headers = new HttpHeaders();
headers.setAccept(acceptableMediaTypes);
RestTemplate restTemplate = new RestTemplate();
HttpEntity<String> httpEntity = new HttpEntity<String>(headers);
ResponseEntity<byte[]> result = restTemplate.exchange( "someurl deleted On purpose",
HttpMethod.GET,
httpEntity,
byte[].class );
ZipInputStream zipStream = new ZipInputStream(new ByteArrayInputStream(result.getBody()));
ZipEntry entry = null;
while ((entry = zipStream.getNextEntry()) != null)
{
System.out.println( "entry: " + entry );
}
输出为:
entry: bridge2cart/
entry: bridge2cart/config.php
entry: bridge2cart/bridge.php
entry: readme.txt
所以您可能没有请求正确的媒体类型,或者 URL 编码不正确。