java.util.zip.deflater equivalente en c #

¿Alguien sabe cómo puedo lograr la funcionalidad Deflater.deflate () de java en .NET para que sea comprensible para el método Infalter.inflate () de java?

Saludos, Rafal

He usado #zipLib . Es bastante sencillo.

Tomado de su sitio:

#ziplib (SharpZipLib, anteriormente NZipLib) es una biblioteca Zip, GZip, Tar y BZip2 escrita completamente en C # para la plataforma .NET. Se implementa como un ensamblaje (instalable en el GAC) y, por lo tanto, se puede incorporar fácilmente a otros proyectos (en cualquier lenguaje .NET). El creador de #ziplib lo expresó de esta manera: “He transferido la biblioteca zip a C # porque necesitaba la compresión gzip / zip y no quería usar libzip.dll o algo así. Quiero todo en C # puro . ”

Compruebe el espacio de nombres System.IO.Compression . Tiene DeflateStream . DeflateStream usa el algoritmo Deflate para la compresión, y también lo hace java.util.zip.deflater. Así que puedes comprimir con .NET y descomprimir con la implementación de Java y viceversa.

La clase ZlibStream dentro del paquete DotNetZip ( https://dotnetzip.codeplex.com/ ) es equivalente a java.util.zip.deflater.

Nuget: Instalar paquete DotNetZip

uso para la matriz de bytes:

ZlibStream.CompressBuffer(dataBytesArray); ZlibStream.UncompressBuffer(dataBytesArray); 

también tiene compresión y descompresión de cadenas, y la clase se puede usar con flujos exactamente de la misma manera que con .NET DefalteStream. Tenga en cuenta que DeflateStream de DotNetZip no es lo mismo que su Java, ZlibStream es.

Información adicional: DeflateStream de .NET no es compatible con Deflate en Java. De hecho, Java usa Zlib y agrega de forma predeterminada un encabezado de 2 a 6 bytes y una sum de comprobación de 4 bytes. Cortar los bytes (sugerido por algunos artículos como http://blogs.msdn.com/b/bclteam/archive/2007/05/16/system-io-compression-capabilities-kim-hamilton.aspx ) funcionará, pero No lo sugiero ya que la longitud del encabezado de análisis puede causar errores.

No sugiero SharpZipLib ya que es puro C # y, por lo general, el rendimiento es importante cuando se trabaja con datos de compresión y descompresión. Busque en http://www.codeproject.com/Articles/434583/SharpZipLib-or-DotNetZip-Which-should-you-use

Hay

Clase ZipPackage

o

Clase GZipStream

lo que podría ayudar, pero no sé qué tan fáciles son de usar o si son compatibles con Java (lo siento, no es una buena respuesta).

Hay una buena publicación de blog sobre cosas zip en: http://blogs.msdn.com/b/bclteam/archive/2010/06/28/working-with-zip-files-in-net.aspx

O algunas utilidades zip de código abierto para c #.