]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.lz4/src/org/simantics/lz4/Main.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.lz4 / src / org / simantics / lz4 / Main.java
diff --git a/bundles/org.simantics.lz4/src/org/simantics/lz4/Main.java b/bundles/org.simantics.lz4/src/org/simantics/lz4/Main.java
new file mode 100644 (file)
index 0000000..1a09d9b
--- /dev/null
@@ -0,0 +1,38 @@
+package org.simantics.lz4;\r
+\r
+import java.io.UnsupportedEncodingException;\r
+\r
+import net.jpountz.lz4.LZ4Compressor;\r
+import net.jpountz.lz4.LZ4Factory;\r
+import net.jpountz.lz4.LZ4FastDecompressor;\r
+import net.jpountz.lz4.LZ4SafeDecompressor;\r
+\r
+public class Main {\r
+\r
+       public static void main(String[] args) throws UnsupportedEncodingException {\r
+               LZ4Factory factory = LZ4Factory.fastestInstance();\r
+\r
+               byte[] data = "12345345234572".getBytes("UTF-8");\r
+               final int decompressedLength = data.length;\r
+\r
+               // compress data\r
+               LZ4Compressor compressor = factory.fastCompressor();\r
+               int maxCompressedLength = compressor.maxCompressedLength(decompressedLength);\r
+               byte[] compressed = new byte[maxCompressedLength];\r
+               int compressedLength = compressor.compress(data, 0, decompressedLength, compressed, 0, maxCompressedLength);\r
+\r
+               // decompress data\r
+               // - method 1: when the decompressed length is known\r
+               LZ4FastDecompressor decompressor = factory.fastDecompressor();\r
+               byte[] restored = new byte[decompressedLength];\r
+               int compressedLength2 = decompressor.decompress(compressed, 0, restored, 0, decompressedLength);\r
+               System.out.println(compressedLength == compressedLength2);\r
+\r
+               // - method 2: when the compressed length is known (a little slower)\r
+               // the destination buffer needs to be over-sized\r
+               LZ4SafeDecompressor decompressor2 = factory.safeDecompressor();\r
+               int decompressedLength2 = decompressor2.decompress(compressed, 0, compressedLength, restored, 0);\r
+               System.out.println(decompressedLength == decompressedLength2);\r
+       }\r
+\r
+}\r