Java в C # Gzip Конечная точка MemoryStream - PullRequest
0 голосов
/ 07 октября 2019

Я написал Java gzip для файлов C #, и они прекрасно распаковываются, но у меня проблемы с кодированием в MemoryStream. Я никак не могу изменить конечную точку C #, C # должен быть таким, как есть. Нужно ли вносить изменения Big-endian / Little-endian в ByteArray на стороне Java или есть проблемы с кодировкой UTF-8?

Конечная точка C #

using (var memoryStream = new MemoryStream())
        {
            memoryStream.Write(byteData, 0, byteData.Length);
            memoryStream.Position = 0;

            if (encodings.Contains(GzipContentEncoding))
            {
                using (var gzipStream = new GZipStream(memoryStream, CompressionMode.Decompress))
                {
                    using (var streamReader = new StreamReader(gzipStream, Encoding.UTF8))
                    {
                        returnString = streamReader.ReadToEnd();
                    }
                }
            }

// Java Аналогично

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream() 
byteArrayOutputStream.write(data.bytes)

GzipCompressorOutputStream gzipCompressorOutputStream = new 
GzipCompressorOutputStream(byteArrayOutputStream)
gzipCompressorOutputStream.flush()

DeflaterOutputStream deflaterOutputStream = new DeflaterOutputStream(gzipCompressorOutputStream)
deflaterOutputStream.write(data.getBytes("UTF-8"))

deflaterOutputStream.flush()

....

...