2014-04-23 1 views
0

나는 이메일의 첨부 파일과 몇 가지 다른 텍스트 파일로 보내고 싶은 엑셀 파일을 가지고 있지만 그 크기 때문에 파일을 압축 싶습니다. 어떻게하면 InputStream을 사용하고 InputStream으로 리턴 할 것인가? 어떤 도움이라도 대단히 감사합니다.여러 파일을 압축하고 압축하려고 할 때, 어떻게 InputStream을 사용하여 압축하고 InputStream으로 리턴합니까?

+0

'ZipInputStream'을 사용해 보셨나요? – hoaz

+0

@hoaz 아직 없습니다. 나는 Java에 익숙하지 않아서 어떤 방향으로 가고 있는지 확신 할 수 없다. 특히이 시점에서 시작하기에이 시점에서 조금만 빠져있다. – wheelerlc64

답변

0

아래 코드를 사용하여 Zip 파일을 만들 수 있습니다.

import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.util.zip.ZipEntry; 
import java.util.zip.ZipOutputStream; 

public class ZipFileTest 
{ 
    public static void main(String[] args) 
    { 
     byte[] buffer = new byte[1024]; 

     try{ 

      FileOutputStream fos = new FileOutputStream("C:\\MyFile.zip"); 
      ZipOutputStream zos = new ZipOutputStream(fos); 
      ZipEntry ze= new ZipEntry("spy.log"); 
      zos.putNextEntry(ze); 
      FileInputStream in = new FileInputStream("C:\\spy.log"); 

      int len; 
      while ((len = in.read(buffer)) > 0) { 
       zos.write(buffer, 0, len); 
      } 

      in.close(); 
      zos.closeEntry(); 

      //remember close it 
      zos.close(); 

      System.out.println("Done"); 

     }catch(IOException ex){ 
      ex.printStackTrace(); 
     } 
    } 
} 
+0

이 포즈는 zip 파일로 압축해야 할 향후 파일을위한 좋은 모델이 될 수 있습니까? 이것이 강력한 프로그램이라는 것을 믿습니다. 구현 될 때 미래에 다른 파일을 포함하고자 할 때 새로운 인스턴스를 만드는 것이 더 쉬운 모델을 위해 가능한 최선의 방법을 찾고 있습니다. – wheelerlc64

관련 문제