BZip2 EndOfStreamExceoption при распаковке - PullRequest
0 голосов
/ 20 июня 2019

Я сжимаю мою строку следующим кодом:

            //prepare
            byte[] byteArray = Encoding.ASCII.GetBytes(txt);
            MemoryStream stream = new MemoryStream(byteArray);
            MemoryStream outStream = new MemoryStream();
            //compress
            BZip2.Compress(stream, outStream, false, 9);
            //stringify
            var reader = new StreamReader(outStream);
            reader.BaseStream.Seek(0, SeekOrigin.Begin);
            var str = reader.ReadToEnd();

, если я пытаюсь распаковать эту строку, я попал туда, метод Decompress выдает исключение EndOfStreamException

            var compressedBytes = Encoding.ASCII.GetBytes(str);
            var compressedStream = new MemoryStream(compressedBytes);
            compressedStream.Seek(0, SeekOrigin.Begin);

            MemoryStream decompressedStream = new MemoryStream((int)compressedStream.Length);

            BZip2.Decompress(compressedStream, decompressedStream, false);

Вот следующееstacktrace, если кто-то знает эту библиотеку лучше, это может помочь

  at ICSharpCode.SharpZipLib.BZip2.BZip2InputStream.FillBuffer () [0x0001c] in C:\projects\sharpziplib\src\ICSharpCode.SharpZipLib\BZip2\BZip2InputStream.cs:426 
  at ICSharpCode.SharpZipLib.BZip2.BZip2InputStream.BsR (System.Int32 n) [0x00002] in C:\projects\sharpziplib\src\ICSharpCode.SharpZipLib\BZip2\BZip2InputStream.cs:437 
  at ICSharpCode.SharpZipLib.BZip2.BZip2InputStream.RecvDecodingTables () [0x000e1] in C:\projects\sharpziplib\src\ICSharpCode.SharpZipLib\BZip2\BZip2InputStream.cs:508 
  at ICSharpCode.SharpZipLib.BZip2.BZip2InputStream.GetAndMoveToFrontDecode () [0x00026] in C:\projects\sharpziplib\src\ICSharpCode.SharpZipLib\BZip2\BZip2InputStream.cs:579 
  at ICSharpCode.SharpZipLib.BZip2.BZip2InputStream.InitBlock () [0x0009f] in C:\projects\sharpziplib\src\ICSharpCode.SharpZipLib\BZip2\BZip2InputStream.cs:379 
  at ICSharpCode.SharpZipLib.BZip2.BZip2InputStream..ctor (System.IO.Stream stream) [0x00121] in C:\projects\sharpziplib\src\ICSharpCode.SharpZipLib\BZip2\BZip2InputStream.cs:112 
  at (wrapper remoting-invoke-with-check) ICSharpCode.SharpZipLib.BZip2.BZip2InputStream..ctor(System.IO.Stream)
  at ICSharpCode.SharpZipLib.BZip2.BZip2.Decompress (System.IO.Stream inStream, System.IO.Stream outStream, System.Boolean isStreamOwner) [0x00012] in C:\projects\sharpziplib\src\ICSharpCode.SharpZipLib\BZip2\BZip2.cs:27

У кого-нибудь есть предложение, где проблема может быть?

...