Simple compression with GZIP
The GZIP interface is simple and thus is probably more appropriate when you have a single stream of data that you want to compress (rather than a container of dissimilar pieces of data). Here’s an example that compresses a single file:
//: c12:GZIPcompress.java // {Args: GZIPcompress.java} // {Clean: test.gz} import com.bruceeckel.simpletest.*; import java.io.*; import java.util.zip.*; public class GZIPcompress { private static Test monitor = new Test(); // Throw exceptions to console: public static void main(String[] args) throws IOException { if(args.length == 0) { System.out.println( "Usage: \nGZIPcompress file\n" + "\tUses GZIP compression to compress " + "the file to test.gz"); System.exit(1); } BufferedReader in = new BufferedReader( new FileReader(args[0])); BufferedOutputStream out = new BufferedOutputStream( new GZIPOutputStream( new FileOutputStream("test.gz"))); System.out.println("Writing file"); int c; while((c = in.read()) != -1) out.write(c); in.close(); out.close(); System.out.println("Reading file"); BufferedReader in2 = new BufferedReader( new InputStreamReader(new GZIPInputStream( new FileInputStream("test.gz")))); String s; while((s = in2.readLine()) != null) System.out.println(s); monitor.expect(new String[] { "Writing file", "Reading file" }, args[0]); } } ///:~
The use of the compression classes is straightforward; you simply wrap your output stream in a GZIPOutputStream or ZipOutputStream, and your input stream in a GZIPInputStream or ZipInputStream. All else is ordinary I/O reading and writing. This is an example of mixing the char-oriented streams with the byte-oriented streams; in uses the Reader classes, whereas GZIPOutputStream’s constructor can accept only an OutputStream object, not a Writer object. When the file is opened, the GZIPInputStream is converted to a Reader.
출처 : http://www.linuxtopia.org/
'Language > JAVA' 카테고리의 다른 글
Java ARchives (JAR) (0) | 2010.11.17 |
---|---|
Multifile storage with Zip (ZIP으로 여러 파일 저장하기) (0) | 2010.11.17 |
자바 파일 압축 (0) | 2010.11.17 |
JAVA File Locking(자바 파일 잠금) (0) | 2010.11.17 |
자바 메모리를 사용한 큰 파일 조작하기 (0) | 2010.11.17 |