2013-08-03 2 views
0

Java에서 웹 페이지에서 입력 스트림을 받아들입니다.이 스트림은 zip 파일 일 수 있습니다. 파일을 디스크에 저장하기 전에 압축을 풀고 싶습니다. 여기Java에서 InputStream 및 ZipInputStream 사용

"java.util.zip.ZipException: only DEFLATED entries can have EXT descriptor" 

을 내가 사용하고 코드입니다 :하지만, 내 zipInputStream.getNextEntry 다음과 같은 오류가 발생합니다. 첫 번째 부분은 잘 작동 :

URL url = new URL ("http://"+ipAddress+"/axis-cgi/record/download.cgi?diskid=SD_DISK&recordingid="+recordingID); 
byte[] encodedBytes = Base64.encodeBase64((username+":"+password).getBytes()); 
String encoding = new String (encodedBytes); 

HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.setDoInput (true); 
connection.setRequestProperty ("Authorization", "Basic " + encoding); 
connection.connect(); 

InputStream inputStream = connection.getInputStream(); 

이 (아래의 문 '동안'에서) 오류를 던지고 내 코드의 일부이다. Unpack()은 파일에 기록합니다.

ZipInputStream zipStream = new ZipInputStream(inputStream); 
ZipEntry zipEntry = null; 
while ((zipEntry = zipStream.getNextEntry()) != null) { 
    File destinationFile = new File("C:/Users/user1/Documents/folder1/test", zipEntry.getName()); 
    unpackEntry(destinationFile, zipStream); 
} 
zipStream.close(); 

수축 된 항목 만 EXT를 가질 수 있다는 오류는 무엇입니까? 이것은 내가받는 파일이 실제로 zip이 아니라는 것을 의미합니까 (예 : 일반 폴더)? File을 사용하여 InputStream을 직접 저장하려고했지만 결과는 내 컴퓨터에서 인식하지 못하는 파일입니다.

+0

SO [Java에서 암호화 된 ODT OpenDocument의 압축을 해제하는 방법] (http://stackoverflow.com/a/10034902/2581401)에서이 주석을 확인하십시오. 그것은'ZipInputStream' 파일에 압축되지 않은 파일을 처리하는 데 문제가있는 것 같습니다 –

+0

Ah. 나는 비슷한 것을 찾아 보았고 아무 것도 찾지 못했습니다. 그 정보는 나를 다른 방향으로 가게했고, 나는 그것이 작동하도록했습니다. – austinthemassive

답변