Моя цель - сжать файл с помощью LZ4 на C ++ и распаковать его в Java.
Мой текстовый файл (A.txt):
Hi, Hello everyone.
Thanks.
Файл после сжатие c ++ (A.txt.lz4):
"M@Pw €Hi, Hello everyone.
Thanks.
Затем я распаковал его в Java (B.txt):
i, Hello everyone.
Thanks.
Проблема в том, что я не получаю первый символ каждого файла. Я не могу понять, где я ошибаюсь.
Мой java код:
public static void uncompressLz4File(String str1, String str2) {
File f1 = new File(str1);
File f2 = new File(str2);
try (InputStream fin = Files.newInputStream(f1.toPath());
BufferedInputStream in = new BufferedInputStream(fin);
OutputStream out = Files.newOutputStream(Paths.get(f2.getAbsolutePath()));
FramedLZ4CompressorInputStream zIn = new FramedLZ4CompressorInputStream(in))
{
int n;
zIn.getCompressedCount();
byte[] b = new byte[1];
int uncompressedLength = zIn.read(b, 0, 1) == -1 ? -1 : b[0] & 255;
b[0] = (byte) uncompressedLength;
final byte[] buffer = new byte[uncompressedLength];
while (-1 != (n = zIn.read(buffer)))
{
out.write(buffer);
}
}
catch (Exception e)
{
}
}
public static void main(String args[]) throws IOException
{
String str1 = "C:\\Users\\aravinth\\Desktop\\A.txt.lz4";
String str2 = "C:\\Users\\aravinth\\Desktop\\B.txt";
uncompressLz4File(str1, str2);
}
Любая помощь будет полезна. Заранее спасибо.