File Stream C#

// crudwork
// Copyright 2004 by Steve T. Pham (http://www.crudwork.com)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with This program.  If not, see .
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.CodeDom.Compiler;
using System.Text.RegularExpressions;
namespace crudwork.Utilities
{
  /// 
  /// File Utility
  /// 

  public static class FileUtil
  {
    #region CleanNull
    /// 
    /// Copy a file to a different filename, with cleaning null characters.
    /// 

    /// 
    /// 
    public static void CleanNull(string filename, string outfile)
    {
      try
      {
        if (File.Exists(outfile))
          File.Delete(outfile);
        using (StreamReader sr = new StreamReader(filename))
        using (BinaryReader br = new BinaryReader(sr.BaseStream))
        using (StreamWriter sw = new StreamWriter(outfile))
        using (BinaryWriter bw = new BinaryWriter(sw.BaseStream))
        {
          while (br.PeekChar() != -1)
          {
            byte b = br.ReadByte();
            // skip NULL character
            if (b == 0)
              continue;
            bw.Write(b);
          }
          sw.Flush();
          sw.Close();
          sr.Close();
        }
      }
      catch (Exception ex)
      {
        throw;
      }
    }
    #endregion
   }
}