case classGzDecompressInBuffer(in: InputStream) extends Product with Serializable
Decompress InputStream in Array[Byte]
import com.github.gekomad.scalacompress.Compressors._
val gzStream = GzDecompressInBuffer(new FileInputStream("/tmp/file.gz"))
val buffer = newArray[Byte](2) // in real world use a big bufferval decompressed = new StringBuilder
@tailrecdef readBuffer(): Unit = {
gzStream.readInBuffer(buffer) match {
case Failure(exception) => exception.printStackTrace
case Success(bytesRead) =>if (bytesRead != -1) {
decompressed.append(newString(buffer, StandardCharsets.UTF_8))
readBuffer()
} else {
println
gzStream.close()
}
}
}
readBuffer()
val cl: Try[Unit] = gzStream.close()
assert(decompressed.toString == "foobar")
Linear Supertypes
Serializable, Serializable, Product, Equals, AnyRef, Any
Decompress InputStream in Array[Byte]