매우 큰 zip 아카이브에서 하나의 파일 만 얻으려고합니다. 이 아카이브에는 루프에서 내 파일을 찾지 않기 때문에 약 100,000 개의 파일이 포함됩니다. 나는 이것이 리눅스의 명령과 같은이 경우를위한 해결책이라고 생각한다. 내가 코드안드로이드에 여러 파일이있는 .zip 파일에서 단일 파일의 압축을 풉니 다.
try {
FileInputStream fin = new FileInputStream(rootDir+"/archive.zip");
ZipInputStream zin = new ZipInputStream(fin);
ZipEntry ze = new ZipEntry("myfile.txt");
FileOutputStream fout = new FileOutputStream(rootDir+"/buff/" + ze.getName());
for (int c = zin.read(); c != -1; c = zin.read()) {
fout.write(c);
}
zin.closeEntry();
fout.close();
zin.close();
} catch(Exception e) {
Log.e("Decompress", "unzip", e);
}
이 코드는 다음과 같은 쓴
unzip archive.zip myfile.txt
는 버프 디렉토리에 새 파일을 생성하지만,이 파일이 비어 있습니다! 제발,이 문제로 도와주세요!
시간 내 주셔서 감사합니다.
죄송하지만 해결책은 아닙니다. ZipFile 초기화 읽기 구멍 파일과 같지만 크기가 커서 메모리 부족 오류가 있습니다. – lubart
아카이브를로드하지 않고 큰 아카이브에서 압축 파일을 추출 할 수 있습니까? 장치 또는 인터넷 어딘가에 보관 파일이 있습니까? 나는 이것이 불가능한 일처럼 들리기 시작할까 두려워하지만 좀 더 많은 정보를 제공해 주시기 바랍니다. –
답변 해 주셔서 감사합니다. 이 파일은 sdcard에 있습니다. 예, 모든 zip 파일을 읽지 않고 아카이브에서 하나의 파일을 추출하고 싶습니다. 나는 리눅스에서 unzip 명령을 사용하는 것이 가능하다는 것을 안다. 안드로이드에서도 가능하다는 희망을 가지고있다. – lubart