당신은 어떻게 파이프 inputstream 을 압축 파일로에서 읽 Java?
-
02-07-2019 - |
문제
내가 원하는 프로그램을 실행하고 그것을 실행에서 읽을 출력하고 파이프의 출력으로 압축한 파일입니다.출력 프로그램의 매우 큰 될 수 있습니다 그래서 아이디어가지 너무 많이 보유 메모리에서-그냥을 보낼으로 우편에 그것을 얻는다.
해결책
ZipOutputStream targetStream = new ZipOutputStream(fileToSaveTo);
ZipEntry entry = new ZipEntry(nameOfFileInZipFile);
targetStream.putNextEntry(entry);
byte[] dataBlock = new byte[1024];
int count = inputStream.read(dataBlock, 0, 1024);
while (count != -1) {
targetStream.write(dataBlock, 0, count);
count = inputStream.read(dataBlock, 0, 1024);
}
Otherwords:
- 을 만들 ZipOutputStream 을 제공,그것은 파일을 쓰고 싶습니다.
을 만들 ZipEntry,구성하는 파일에 있는 지퍼 파일입니다.즉을 열 때 myFile.zip 고,거기에 있는 3 개의 파일을 서있는 파일이 ZipEntry.
는 zipEntry 로 ZipOutputStream
- 만들기를 바이트 버퍼에 데이터를 읽습니다.
- 읽기 에서 inputStream 으로 귀하의 바이트 버퍼,그리고 기억합니다.
- 는 동안 수 없 -1,쓰기는 바이트 byffer 귀하의 zipStream.
- 읽기됩니다.
닫 스트림할 때 당신은 할 수 있습니다.을 포장하는 방법으로 할 수 있습니다.
제휴하지 않습니다 StackOverflow