Um arquivo binário lido e escrito por StreamReader e StreamWriter pode ser corrigido?

Se eu li e escrevi um arquivo binário usando StreamReader e StreamWriter, o arquivo pode ser reparado?

// 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);
    } 
}

questionAnswers(2)

yourAnswerToTheQuestion