¿Se puede reparar un archivo binario leído y escrito por StreamReader y StreamWriter?

Si leo y escribo un archivo binario utilizando StreamReader y StreamWriter, ¿se puede reparar el archivo?

// Original Code - Corrupted the Destination File
using (Stream responseStream = response.GetResponseStream())
{
    using (StreamReader reader = new StreamReader(responseStream))
    {
        using (StreamWriter writer = new StreamWriter(destinationFileName, false))
        {
            writer.Write(reader.ReadToEnd());
        }
    }
}


// New Code - Destination File is Good
using (Stream responseStream = response.GetResponseStream())
{
    using (FileStream fs = File.Create(destinationFileName))
    {
        responseStream.CopyTo(fs);
    } 
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta