Является ли алгоритм zlib-flate тем же, что и в алгоритмах Java Inflate / Deflate? - PullRequest
0 голосов
/ 24 декабря 2018

Я предположил так (как указано @ https://docs.oracle.com/javase/7/docs/api/java/util/zip/Deflater.html),, но некоторые элементарные тесты, кажется, показывают мне иначе:

  def compress(data: Array[Byte]): Array[Byte] = {
    val dis = new DeflaterInputStream(new ByteArrayInputStream(data))
    val baos = new ByteArrayOutputStream()
    dis.transferTo(baos)
    val result = baos.toByteArray
    dis.close()
    baos.close()
    result
  }

  Files.write(Paths.get("/tmp/xxx"), compress("a".getBytes("utf-8")))

и результат:

usr@usr:/tmp$ xxd xxx
00000000: 789c 4b04 0000 6200 62                   x.K...b.b

, новыполнение в bash следующее дает другой результат:

usr@usr:/tmp$ echo a| zlib-flate -compress | xxd
00000000: 789c 4be4 0200 00ce 006c                 x.K......l

Любая подсказка, почему результаты отличаются? Это то, что алгоритмы просто не совпадают? Я пытался просто ради этого использоватьразличные кодировки, кроме utf-8 (ascii и utf-16 и, как и ожидалось, ascii или utf-8 выглядели одинаково для данного ввода, и utf-16 казался другим, но не тем, что мы ищем.)

Спасибо

...