Exemple #1
0
        public static byte[] ZipString(string sBuffer)
        {
            MemoryStream      m_msBZip2 = null;
            BZip2OutputStream m_osBZip2 = null;

            byte[] result;
            try {
                m_msBZip2 = new MemoryStream();
                Int32 size = sBuffer.Length;
                // Prepend the compressed data with the length of the uncompressed data (firs 4 bytes)
                //
                using (BinaryWriter writer = new BinaryWriter(m_msBZip2, System.Text.Encoding.ASCII)) {
                    writer.Write(size);

                    m_osBZip2 = new BZip2OutputStream(m_msBZip2);
                    m_osBZip2.Write(Encoding.ASCII.GetBytes(sBuffer), 0, sBuffer.Length);

                    m_osBZip2.Close();
                    result = m_msBZip2.ToArray();
                    m_msBZip2.Close();

                    writer.Close();
                }
            } finally {
                if (m_osBZip2 != null)
                {
                    m_osBZip2.Dispose();
                }
                if (m_msBZip2 != null)
                {
                    m_msBZip2.Dispose();
                }
            }
            return(result);
        }
Exemple #2
0
        public void CreateEmptyArchive()
        {
            var ms        = new MemoryStream();
            var outStream = new BZip2OutputStream(ms);

#if NET451
            outStream.Close();
#elif NETCOREAPP1_0
            outStream.Dispose();
#endif
            ms = new MemoryStream(ms.ToArray());

            ms.Seek(0, SeekOrigin.Begin);

            using (BZip2InputStream inStream = new BZip2InputStream(ms)) {
                byte[] buffer = new byte[1024];
                int    pos    = 0;
                while (true)
                {
                    int numRead = inStream.Read(buffer, 0, buffer.Length);
                    if (numRead <= 0)
                    {
                        break;
                    }
                    pos += numRead;
                }

                Assert.AreEqual(pos, 0);
            }
        }
Exemple #3
0
        void Writer()
        {
            WriteTargetBytes();
#if NET451
            outStream_.Close();
#elif NETCOREAPP1_0
            outStream_.Dispose();
#endif
        }
Exemple #4
0
    public static byte[] ZipStream(byte[] sBuffer)
    {
        MemoryStream m_msBZip2 = null;

        BZip2OutputStream m_osBZip2 = null;

        byte[] result;

        try
        {
            m_msBZip2 = new MemoryStream();

            Int32 size = sBuffer.Length;


            using (BinaryWriter writer = new BinaryWriter(m_msBZip2, System.Text.Encoding.ASCII))
            {
                writer.Write(size);



                m_osBZip2 = new BZip2OutputStream(m_msBZip2);

                m_osBZip2.Write(sBuffer, 0, sBuffer.Length);



                m_osBZip2.Close();

                result = m_msBZip2.ToArray();

                m_msBZip2.Close();



                writer.Close();
            }
        }

        finally
        {
            if (m_osBZip2 != null)
            {
                m_osBZip2.Dispose();
            }

            if (m_msBZip2 != null)
            {
                m_msBZip2.Dispose();
            }
        }

        return(result);
    }
Exemple #5
0
        protected override BitStream internalDecode(BitStream data)
        {
            MemoryStream      sin   = new MemoryStream((byte[])data.Value);
            MemoryStream      sout  = new MemoryStream();
            BZip2OutputStream bzip2 = new BZip2OutputStream(sout);

            sin.CopyTo(bzip2);
            bzip2.Dispose();

            return(new BitStream(sout.ToArray()));
        }
Exemple #6
0
        public static void SerializeToFileBZip2(T data, string fileName)
        {
            FileStream        fs         = new FileStream(fileName, FileMode.Create);
            BZip2OutputStream bzs        = new BZip2OutputStream(fs);
            BinaryFormatter   bFormatter = new BinaryFormatter();

            bFormatter.Serialize(bzs, data);
            bzs.Close();
            bzs.Dispose();
            fs.Close();
            fs.Dispose();
        }
Exemple #7
0
        public static byte[] SerializeToBytesBZip2(T data)
        {
            MemoryStream      ms         = new MemoryStream();
            BZip2OutputStream gzs        = new BZip2OutputStream(ms);
            BinaryFormatter   bFormatter = new BinaryFormatter();

            bFormatter.Serialize(gzs, data);
            gzs.Close();
            gzs.Dispose();
            byte[] ret = ms.ToArray();
            ms.Close();
            ms.Dispose();
            return(ret);
        }
Exemple #8
0
        /// <summary>
        /// Saves a woman to the given path.
        /// </summary>
        /// <param name="w">Woman to save.</param>
        /// <param name="path"><Path to the new/overwritten file./param>
        /// <returns>True if file successfully saved.</returns>
        public static bool SaveWomanTo(Woman w, string path)
        {
            try
            {
                // Serialize to memory stream to make sure data is serializable.
                var saveMemoryStream   = new MemoryStream();
                var testSaveDataStream = new BZip2OutputStream(saveMemoryStream, 9);

                // Make sure serialization goes well.
                new XmlSerializer(w.GetType()).Serialize(testSaveDataStream, w);
                testSaveDataStream.Close();
                var data = saveMemoryStream.ToArray();

                testSaveDataStream.Close();

                // Dispose resources.
                saveMemoryStream.Dispose();
                testSaveDataStream.Dispose();

                // Prepare to read the saved data.
                var loadMemoryStream   = new MemoryStream(data);
                var testLoadDataStream = new BZip2InputStream(loadMemoryStream);

                // Make sure we can read it back.
                new XmlSerializer(typeof(Woman)).Deserialize(testLoadDataStream);
                testLoadDataStream.Close();

                // Dispose resources.
                loadMemoryStream.Dispose();
                testLoadDataStream.Dispose();

                // Make sure we have access to the file system.
                var filestream = new FileStream(path, FileMode.Create);

                // Save to file.
                filestream.Write(data, 0, data.Length);
                filestream.Close();
            }
            catch (Exception ex)
            {
                MsgBox.Error(TEXT.Get["Unable_to_save_file"] + ex.Message, TEXT.Get["Error"]);
                return(false);
            }

            return(true);
        }
Exemple #9
0
        /*static int GetMaterialIndex(Material material)
         * {
         *      if (!_materialPack.Contains(material))
         *              _materialPack.Add(material);
         *      return _materialPack.IndexOf(material);
         * }*/

        /*static int GetTextureIndex(Texture txtr)
         * {
         *      if (_texturePack == null)
         *              return -1;
         *      if (!_texturePack.Contains(txtr))
         *              _texturePack.Add(txtr);
         *      return _texturePack.IndexOf(txtr);
         * }*/

        /*byte[] GetResource(object value)
         * {
         * if (!_objectPack.Contains(value))
         *      {
         * _objectPack.Add(value);
         *              _bytesPack.Add(Encoding(value));
         *      }
         *      var result = new byte[]{252,0,0,0,0};
         * Buffer.BlockCopy(EncodeInteger(_objectPack.IndexOf(value)), 0, result, 1, 4);
         *      return result;
         * }*/

        /// <summary>
        /// Compress byte array
        /// For decompress use Decode
        ///
        /// </summary>
        /// <param name="data">array of byte</param>
        /// <returns></returns>
        public byte[] Compress(byte[] data)
        {
            MemoryStream      mMsBZip2 = null;
            BZip2OutputStream mOsBZip2 = null;

            byte[] result;
            try
            {
                mMsBZip2 = new MemoryStream();
                mOsBZip2 = new BZip2OutputStream(mMsBZip2);
                mOsBZip2.Write(data, 0, data.Length);
                mOsBZip2.Close();

                var packLength   = mMsBZip2.ToArray().Length;
                var unpackLength = data.Length;
                result = new byte[11 + packLength];
                Buffer.SetByte(result, 0, Version);
                Buffer.SetByte(result, 1, 0x0);                //Size of next head (bytes)
                #region Head
                //reserved
                //Buffer.SetByte(result, 2, 0x0);example head
                #endregion
                Buffer.SetByte(result, 2, 0xfe);                //Compress
                Buffer.BlockCopy(BitConverter.GetBytes(packLength), 0, result, 3, 4);
                Buffer.BlockCopy(BitConverter.GetBytes(unpackLength), 0, result, 7, 4);
                Buffer.BlockCopy(mMsBZip2.ToArray(), 0, result, 11, packLength);
                mMsBZip2.Close();
                mMsBZip2.Dispose();
            }
            finally
            {
                if (mOsBZip2 != null)
                {
                    mOsBZip2.Dispose();
                }
                if (mMsBZip2 != null)
                {
                    mMsBZip2.Dispose();
                }
            }
            return(result);
        }
Exemple #10
0
        public void BasicRoundTrip()
        {
            var ms        = new MemoryStream();
            var outStream = new BZip2OutputStream(ms);

            byte[] buf = new byte[10000];
            var    rnd = new Random();

            rnd.NextBytes(buf);

            outStream.Write(buf, 0, buf.Length);
#if NET451
            outStream.Close();
#elif NETCOREAPP1_0
            outStream.Dispose();
#endif
            ms = new MemoryStream(ms.ToArray());
            ms.Seek(0, SeekOrigin.Begin);

            using (BZip2InputStream inStream = new BZip2InputStream(ms)) {
                byte[] buf2 = new byte[buf.Length];
                int    pos  = 0;
                while (true)
                {
                    int numRead = inStream.Read(buf2, pos, 4096);
                    if (numRead <= 0)
                    {
                        break;
                    }
                    pos += numRead;
                }

                for (int i = 0; i < buf.Length; ++i)
                {
                    Assert.AreEqual(buf2[i], buf[i]);
                }
            }
        }
Exemple #11
0
        public byte[] Encode(byte[] src, int level = 0)
        {
            MemoryStream      m_msBZip2 = null;
            BZip2OutputStream m_osBZip2 = null;

            byte[] result = null;
            try
            {
                m_msBZip2 = new MemoryStream();
                Int32 size = src.Length;
                // Prepend the compressed data with the length of the uncompressed data (firs 4 bytes)
                //
                using (BinaryWriter writer = new BinaryWriter(m_msBZip2, System.Text.Encoding.ASCII))
                {
                    writer.Write(size);
                    m_osBZip2 = new BZip2OutputStream(m_msBZip2);
                    m_osBZip2.Write(src, 0, src.Length);

                    m_osBZip2.Close();
                    result = m_msBZip2.ToArray();
                    m_msBZip2.Close();

                    writer.Close();
                }
            }
            finally
            {
                if (m_osBZip2 != null)
                {
                    m_osBZip2.Dispose();
                }
                if (m_msBZip2 != null)
                {
                    m_msBZip2.Dispose();
                }
            }
            return(result);
        }