case classStreamDecompress(compressorName: StreamableCompressor, in: InputStream) extends Product with Serializable
Decompressing stream example
val zStream = StreamDecompress(StreamableCompressor.GZ, new FileInputStream("/tmp/compressedFile"))
// val zStream = StreamDecompress(StreamableCompressor.DEFLATE, new FileInputStream("/tmp/compressedFile"))// val zStream = StreamDecompress(StreamableCompressor.BZ2, new FileInputStream("/tmp/compressedFile"))// val zStream = StreamDecompress(StreamableCompressor.PACK200, new FileInputStream("/tmp/compressedFile"))// val zStream = StreamDecompress(StreamableCompressor.XZ, new FileInputStream("/tmp/compressedFile"))// val zStream = StreamDecompress(StreamableCompressor.ZSTANDARD, new FileInputStream("/tmp/compressedFile"))// val zStream = StreamDecompress(StreamableCompressor.LZMA, new FileInputStream("/tmp/compressedFile"))// val zStream = StreamDecompress(StreamableCompressor.LZ4, new FileInputStream("/tmp/compressedFile"))// val zStream = StreamDecompress(StreamableCompressor.Snappy1, new FileInputStream("/tmp/compressedFile"))val buffer = newArray[Byte](2)
val decompressed = new StringBuilder
@tailrecdef readBuffer(): Unit = {
zStream.readInBuffer(buffer) match {
case Failure(exception) => exception.printStackTrace
case Success(bytesRead) =>if (bytesRead != -1) {
decompressed.append(newString(buffer, StandardCharsets.UTF_8))
readBuffer()
} else {
println
zStream.close()
}
}
}
readBuffer()
val cl: Try[Unit] = zStream.close()
assert(decompressed.toString == "foobar")
in
Linear Supertypes
Serializable, Serializable, Product, Equals, AnyRef, Any
Decompressing stream example