Scala中通过放气阀的往返跳闸失败

Scala中通过放气阀的往返跳闸失败,scala,compression,deflate,Scala,Compression,Deflate,我希望通过java的Deflater往返字节,并遇到一些问题。首先是输出,然后是代码。我在这里做错了什么?我怎样才能正确地往返于这些溪流 输出: scala> new String(decompress(compress("face".getBytes))) (crazy output string of length 20) def compress(bytes: Array[Byte]): Array[Byte] = { val deflater = new java.u

我希望通过java的Deflater往返字节,并遇到一些问题。首先是输出,然后是代码。我在这里做错了什么?我怎样才能正确地往返于这些溪流

输出:

scala> new String(decompress(compress("face".getBytes)))
(crazy output string of length 20)
  def compress(bytes: Array[Byte]): Array[Byte] = {
    val deflater = new java.util.zip.Deflater
    val baos = new ByteArrayOutputStream
    val dos = new DeflaterOutputStream(baos, deflater)
    dos.write(bytes)
    baos.close
    dos.finish
    dos.close
    baos.toByteArray
  }

  def decompress(bytes: Array[Byte]): Array[Byte] = {
    val deflater = new java.util.zip.Deflater
    val baos = new ByteArrayOutputStream(512)
    val bytesIn = new ByteArrayInputStream(bytes)
    val in = new DeflaterInputStream(bytesIn, deflater)
    var go = true
    while (go) {
      val b = in.read
      if (b == -1)
        go = false
      else
        baos.write(b)
    }
    baos.close
    in.close
    baos.toByteArray
  }
代码:

scala> new String(decompress(compress("face".getBytes)))
(crazy output string of length 20)
  def compress(bytes: Array[Byte]): Array[Byte] = {
    val deflater = new java.util.zip.Deflater
    val baos = new ByteArrayOutputStream
    val dos = new DeflaterOutputStream(baos, deflater)
    dos.write(bytes)
    baos.close
    dos.finish
    dos.close
    baos.toByteArray
  }

  def decompress(bytes: Array[Byte]): Array[Byte] = {
    val deflater = new java.util.zip.Deflater
    val baos = new ByteArrayOutputStream(512)
    val bytesIn = new ByteArrayInputStream(bytes)
    val in = new DeflaterInputStream(bytesIn, deflater)
    var go = true
    while (go) {
      val b = in.read
      if (b == -1)
        go = false
      else
        baos.write(b)
    }
    baos.close
    in.close
    baos.toByteArray
  }
当您应该充气时,您正在(重新)
Deflater
-ing原始放气的结果