C# DeflateStreamクラスでファイルの圧縮、解凍を行う

DeflateStreamクラスを用いてデフレートアルゴリズムによるファイルの圧縮、解凍を行う(ソースコードを改訂しました)

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.IO.Compression;

class Program
{
    public static void Main()
    {
        /////////////////////////////////////////////////////////////////////
        //圧縮
        String sourceFileName = @"test.txt";//元ファイルの名前
        String deflateFileName = @"test.lz";//Deflateで圧縮したファイルの名前
        
        //元ファイルからデータをすべて読み込む
        Byte[] buffer;
        using (FileStream ifs = new FileStream(sourceFileName, FileMode.Open))
        {
            buffer = new Byte[ifs.Length];
            ifs.Read(buffer, 0, (Int32)ifs.Length);
        }

        //読み込んだデータを圧縮して書き込む
        using (FileStream ofs = new FileStream(deflateFileName, FileMode.Create))
        using (DeflateStream deflateStream = new DeflateStream(ofs, CompressionMode.Compress, true))
        {
            deflateStream.Write(buffer, 0, buffer.Length);
        }


        /////////////////////////////////////////////////////////////////////
        //解凍
        String decompFileName = @"test2.txt";//解凍するファイルの名前
        using (FileStream ifs = new FileStream(deflateFileName, FileMode.Open))
        using (DeflateStream deflateStream = new DeflateStream(ifs, CompressionMode.Decompress))
        using (FileStream ofs = new FileStream(decompFileName, FileMode.Create))
        {
            buffer = new Byte[1024];
            while (true)
            {
                //Deflateで圧縮されたファイルからデータを読み込む
                Int32 readBytes = deflateStream.Read(buffer, 0, buffer.Length);
                if (readBytes == 0)
                {
                    break;
                }

                //解凍されたデータを書き込む
                ofs.Write(buffer, 0, readBytes);
            }
        }
    }
}