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을 직접 저장하려고했지만 결과는 내 컴퓨터에서 인식하지 못하는 파일입니다.
SO [Java에서 암호화 된 ODT OpenDocument의 압축을 해제하는 방법] (http://stackoverflow.com/a/10034902/2581401)에서이 주석을 확인하십시오. 그것은'ZipInputStream' 파일에 압축되지 않은 파일을 처리하는 데 문제가있는 것 같습니다 –
Ah. 나는 비슷한 것을 찾아 보았고 아무 것도 찾지 못했습니다. 그 정보는 나를 다른 방향으로 가게했고, 나는 그것이 작동하도록했습니다. – austinthemassive