Я искал правильное решение для распаковки строки в java, исходящей из кода С#. Я пробовал себя с множеством методов в java, таких как (gzip, inflatter и т. д.), но не получил решение. Я получил некоторую ошибку при попытке распаковать строку в java из сжатой строки из кода С#.
Мой код С# для сжатия строки:
public static string CompressString(string text)
{
byte[] byteArray = Encoding.GetEncoding(1252).GetBytes(text);// Encoding.ASCII.GetBytes(text);
using (var ms = new MemoryStream())
{
// Compress the text
using (var ds = new DeflateStream(ms, CompressionMode.Compress))
{
ds.Write(byteArray, 0, byteArray.Length);
}
return Convert.ToBase64String(ms.ToArray());
}
}
И распакуйте строку в java, используя
private static void compressAndDecompress(){
try {
// Encode a String into bytes
String string = "xxxxxxSAMPLECOMPRESSEDSTRINGxxxxxxxxxx";
// // Compress the bytes
byte[] decoded = Base64.decodeBase64(string.getBytes());
byte[] output = new byte[4096];
// Decompress the bytes
Inflater decompresser = new Inflater();
decompresser.setInput(decoded);
int resultLength = decompresser.inflate(output);
decompresser.end();
// Decode the bytes into a String
String outputString = new String(output, 0, resultLength, "UTF-8");
System.out.println(outputString);
} catch(java.io.UnsupportedEncodingException ex) {
ex.printStackTrace();
} catch (java.util.zip.DataFormatException ex) {
ex.printStackTrace();
}
}
Я получаю это исключение при запуске приведенного выше кода:
java.util.zip.DataFormatException: incorrect header check
Пожалуйста, дайте мне пример кода в java для распаковки строки java. Спасибо