, 나는 일부 파일을 압축하고 서버 측에서의 InputStream을 만들 수 있도록 노력하겠습니다, 그리고 내가 How to zip and unzip the files?에서 코드 B 읽고먼저 ZIP 파일을 만들지 않고 Android에서 ZIP InputStream을 만드는 방법은 무엇입니까?
코드 A를 사용하여 클라이언트 측에서의 InputStream를 다운로드 ,하지만 먼저 ZIP 파일을 만들지 않고 Android에서 ZIP InputStream을 만드는 방법은 무엇입니까?
저는 코드 C가 좋은 방법이라고 생각하지 않습니다. 왜냐하면 먼저 ZIP 파일을 만든 다음 ZIP 파일을 FileInputStream으로 변환하기 때문에 ZIP InputStream을 직접 만들 수 있기를 바랍니다.
코드
private Response ActionDownloadSingleFile(InputStream fis) {
Response response = null;
response = newChunkedResponse(Response.Status.OK, "application/octet-stream",fis);
response.addHeader("Content-Disposition", "attachment; filename="+"my.zip");
return response;
}
코드 B
public static void zip(String[] files, String zipFile) throws IOException {
BufferedInputStream origin = null;
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile)));
try {
byte data[] = new byte[BUFFER_SIZE];
for (int i = 0; i < files.length; i++) {
FileInputStream fi = new FileInputStream(files[i]);
origin = new BufferedInputStream(fi, BUFFER_SIZE);
try {
ZipEntry entry = new ZipEntry(files[i].substring(files[i].lastIndexOf("/") + 1));
out.putNextEntry(entry);
int count;
while ((count = origin.read(data, 0, BUFFER_SIZE)) != -1) {
out.write(data, 0, count);
}
}
finally {
origin.close();
}
}
}
finally {
out.close();
}
}
코드 C
File file= new File("my.zip");
FileInputStream fis = null;
try
{
fis = new FileInputStream(file);
} catch (FileNotFoundException ex)
{
}
서버에 * 출력 * 스트림을 만들어야합니다. 'ZipOutputStream'은 서버 기술이 제공하는 출력 스트림을 감싸고 있습니다. – EJP
고마워요! EJP에게 샘플 코드를 줄 수 있습니까? – HelloCW
ZipInputSteam은 FilterInputStream을 확장하므로 ZipInputSteam을 직접 만들 수 없으므로 기본적으로 스트림에서 zip 파일을 읽는 기능을 제공하는 래퍼 클래스로 작동합니다. '새로운 ZipInputStream (새로운 FileInputStream (zipFile)) '과 같은 것이 필요합니다. –