2011-05-13 3 views
8

저는 자바 초보자입니다. this과 같은 것이 필요합니다. :java : 문자열을 gzip 파일로 저장

String2GzipFile (String file_content, String file_name) 
String2GzipFile("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "lorem.txt.gz") 

어떻게 할 수 있을까요?

답변

39

여기 개의 직교 개념있다 :

  • 이진 데이터 압축 전형적 OutputStreamWriter
  • 통해 진 텍스트 변환은 예를 들면, 에

GZIPOutputStream를 사용하는 것은 그래서 결국 당신이 원하는 것 :

  • ByteArrayOutputStream
  • 랩을 통해이 결과를 원하는 목적지에 쓰는 OutputStream (예 : 파일이나 메모리를 만드는 것이 적절한 캐릭터 세트를 사용하여 GZIPOutputStream
  • OutputStreamWriter에서 GZIPOutputStream에서 OutputStream (예 : UTF-8)
  • 가 텍스트를 쓰기 the OutputStreamWriter
  • 작가를 닫으면 다른 모든 것을 비우고 닫을 수 있습니다.
  • 예를 들어

: 우리는 작가를 만드는 데 실패,하지만 우리는 여전히 모든 성공하면 writer을 닫아야합니다 경우에도 내가 모든 것을 플러시하기 위해, output을 폐쇄하고있어

FileOutputStream output = new FileOutputStream(fileName); 
try { 
    Writer writer = new OutputStreamWriter(new GZIPOutputStream(output), "UTF-8")); 
    try { 
    writer.write(text); 
    } finally { 
    writer.close(); 
    } 
} finally { 
    output.close(); 
} 

주와 데이터 쓰기를 마칩니다.

+0

ByteArrayOutputStream을 사용하려고했지만 예제가 완벽하게 작동합니다. 고마워요 – Luistar15

+0

@ user752679 : 원래 ByteArrayOutputStream을 사용하여 샘플을 썼습니다 만, 질문에 말하지만 파일에 쓰고 싶다고 말합니다 ... –

2

GZIPOutputStream을보세요. 다른 출력 스트림과 똑같이 파일에 쓸 수 있어야합니다. 자동으로 gzip 압축 형식으로 작성됩니다.

관련 문제