2013-07-25 3 views
0

ZipInputStream이 포함 된 Zip 아카이브를 읽으려고합니다. 그래서 같은 문제없이 모든 항목을 통해 I주기 :ZipInputStream 되감기 - Android

try { 
       while((ze = zis.getNextEntry()) != null) { 
        Log.v(this.toString(), "Name = " + name); 

       } 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      //e.printStackTrace(); 
      Log.e(this.toString(), "IOException in creating ZipEntry."); 
     } 

내가 상기와 같은 방법으로, 다른 함수에서 같은 zip 파일을 읽을 수있는 zis 변수를 사용하려고, 라인 ze = zis.getNextEntry() 반환 null. 스트림의 끝 부분에 도달했기 때문에 이해할 수 있습니다.

내 질문 :
1. 스트림을 "되감 으려면"어떻게해야합니까?
2. 임시 ZipInputStream을 작성하고 zip 파일을 다시 읽어야하는 다음 기능에서이를 사용하는 대안이 있습니까?

답변

1

자바에서 ZipInputStream을 되감기 할 방법이 없습니다.

유일한 대안은 스트림을 한 번만 읽도록 코드를 재구성하는 것입니다. 이것은 데이터를 두 번 이상 압축 해제 할 필요가 없기 때문에 (상황에 따라) 유리할 것입니다.

어쩌면 임시 캐시 디렉토리에 데이터를 압축 해제 할 수 있습니다.

+0

데이터를 임시 캐시에 압축 해제 하시겠습니까? 흥미로운 것 같습니다. 이 캐시는 어디에 있습니까? 그리고 SDCard에 넣을 수 있습니까? – Sriram