xref: /aosp_15_r20/external/xz-java/src/XZEncDemo.java (revision 21943e31f48dee19de75c78c0efeb8417c9a67d0)
1*21943e31SAndroid Build Coastguard Worker /*
2*21943e31SAndroid Build Coastguard Worker  * XZEncDemo
3*21943e31SAndroid Build Coastguard Worker  *
4*21943e31SAndroid Build Coastguard Worker  * Author: Lasse Collin <[email protected]>
5*21943e31SAndroid Build Coastguard Worker  *
6*21943e31SAndroid Build Coastguard Worker  * This file has been put into the public domain.
7*21943e31SAndroid Build Coastguard Worker  * You can do whatever you want with this file.
8*21943e31SAndroid Build Coastguard Worker  */
9*21943e31SAndroid Build Coastguard Worker 
10*21943e31SAndroid Build Coastguard Worker import java.io.*;
11*21943e31SAndroid Build Coastguard Worker import org.tukaani.xz.*;
12*21943e31SAndroid Build Coastguard Worker 
13*21943e31SAndroid Build Coastguard Worker /**
14*21943e31SAndroid Build Coastguard Worker  * Compresses a single file from standard input to standard ouput into
15*21943e31SAndroid Build Coastguard Worker  * the .xz file format.
16*21943e31SAndroid Build Coastguard Worker  * <p>
17*21943e31SAndroid Build Coastguard Worker  * One optional argument is supported: LZMA2 preset level which is an integer
18*21943e31SAndroid Build Coastguard Worker  * in the range [0, 9]. The default is 6.
19*21943e31SAndroid Build Coastguard Worker  */
20*21943e31SAndroid Build Coastguard Worker class XZEncDemo {
main(String[] args)21*21943e31SAndroid Build Coastguard Worker     public static void main(String[] args) throws Exception {
22*21943e31SAndroid Build Coastguard Worker         LZMA2Options options = new LZMA2Options();
23*21943e31SAndroid Build Coastguard Worker 
24*21943e31SAndroid Build Coastguard Worker         if (args.length >= 1)
25*21943e31SAndroid Build Coastguard Worker             options.setPreset(Integer.parseInt(args[0]));
26*21943e31SAndroid Build Coastguard Worker 
27*21943e31SAndroid Build Coastguard Worker         System.err.println("Encoder memory usage: "
28*21943e31SAndroid Build Coastguard Worker                            + options.getEncoderMemoryUsage() + " KiB");
29*21943e31SAndroid Build Coastguard Worker         System.err.println("Decoder memory usage: "
30*21943e31SAndroid Build Coastguard Worker                            + options.getDecoderMemoryUsage() + " KiB");
31*21943e31SAndroid Build Coastguard Worker 
32*21943e31SAndroid Build Coastguard Worker         XZOutputStream out = new XZOutputStream(System.out, options);
33*21943e31SAndroid Build Coastguard Worker 
34*21943e31SAndroid Build Coastguard Worker         byte[] buf = new byte[8192];
35*21943e31SAndroid Build Coastguard Worker         int size;
36*21943e31SAndroid Build Coastguard Worker         while ((size = System.in.read(buf)) != -1)
37*21943e31SAndroid Build Coastguard Worker             out.write(buf, 0, size);
38*21943e31SAndroid Build Coastguard Worker 
39*21943e31SAndroid Build Coastguard Worker         out.finish();
40*21943e31SAndroid Build Coastguard Worker     }
41*21943e31SAndroid Build Coastguard Worker }
42