У меня есть строка Base64, которая была gzipped в .NET, и я хотел бы преобразовать ее обратно в строку в Java. Я ищу для некоторых Java-эквиваленты синтаксиса C#, в частности:C# на Java: Base64String, MemoryStream, GZipStream
- Convert.FromBase64String
- MemoryStream
- GZipStream
Вот метод, который я хотел бы преобразовать:
public static string Decompress(string zipText) {
byte[] gzipBuff = Convert.FromBase64String(zipText);
using (MemoryStream memstream = new MemoryStream())
{
int msgLength = BitConverter.ToInt32(gzipBuff, 0);
memstream.Write(gzipBuff, 4, gzipBuff.Length - 4);
byte[] buffer = new byte[msgLength];
memstream.Position = 0;
using (GZipStream gzip = new GZipStream(memstream, CompressionMode.Decompress))
{
gzip.Read(buffer, 0, buffer.Length);
}
return Encoding.UTF8.GetString(buffer);
}
}
Любые указатели оцениваются.
Просто боковое примечание, работает ли код C#? Поскольку вы выделяете размер буфера с длиной * сжатых * GZip-данных, а затем вы читаете * несжатые * данные в тот же буфер. –
C# код выше отлично работает для распаковки. Спасибо за вашу помощь по этому поводу. –