Я написал 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()
....