コード例 #1
0
ファイル: Bzip2Tests.cs プロジェクト: modulexcite/graveyard
		public void BasicRoundTrip()
		{
			MemoryStream ms = new MemoryStream();
			BZip2OutputStream outStream = new BZip2OutputStream(ms);
			
			byte[] buf = new byte[10000];
			System.Random rnd = new Random();
			rnd.NextBytes(buf);
			
			outStream.Write(buf, 0, buf.Length);
			outStream.Close();
			ms = new MemoryStream(ms.GetBuffer());
			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]);
				}
			}
		}
コード例 #2
0
ファイル: Bzip2Tests.cs プロジェクト: modulexcite/graveyard
		public void CreateEmptyArchive()
		{
			MemoryStream ms = new MemoryStream();
			BZip2OutputStream outStream = new BZip2OutputStream(ms);
			outStream.Close();
			ms = new MemoryStream(ms.GetBuffer());
			
			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);
			}
		}
コード例 #3
0
ファイル: BZip2.cs プロジェクト: modulexcite/graveyard
        /// <summary>
        /// Compress <paramref name="inStream">input stream</paramref> sending 
        /// result to <paramref name="outStream">output stream</paramref>
        /// </summary>
        /// <param name="inStream">The stream to compress.</param>
        /// <param name="outStream">The stream to write compressed data to.</param>
        /// <param name="blockSize">The block size to use.</param>
        /// <remarks>Both streams are closed on completion</remarks>
        public static void Compress(Stream inStream, Stream outStream, int blockSize) 
        {			
            if ( inStream == null ) {
                throw new ArgumentNullException("inStream");
            }
			
            if ( outStream == null ) {
                throw new ArgumentNullException("outStream");
            }
			
            using ( inStream ) {
                using (var bzos = new BZip2OutputStream(outStream, blockSize)) {
                    var ch = inStream.ReadByte();
                    while (ch != -1) {
                        bzos.WriteByte((byte)ch);
                        ch = inStream.ReadByte();
                    }
                }
            }
        }