Link copiato negli appunti
Nel .NET Framework 4.0 troviamo un nuovo ed utile metodo nella classe base System.IO.Stream, classe dalla quale ereditano tutti gli oggetti di tipo Stream, che si chiama CopyTo. Lavorando con gli stream non è infrequente l'eventualità di dover copiare uno stream all'interno di un altro. Fino ad ora quindi era necessario dover scrivere codice come il seguente:
Stream stm1 = ...; // origine Stream stm2 = ...; // destinazione byte[] buffer = new byte[4096]; int read; while ((read = stm1.Read(buffer, 0, buffer.Length)) != 0) { stm2.Write(buffer, 0, read); }
Come possiamo vedere questo codice sebbene faccia sostanzialmente una cosa molto semplice come copiare il contenuto di uno stream all'interno di un secondo stream, richiedeva necessariamente la scrittura di diverse righe di codice. Ora finalmente è presente il nuovo metodo CopyTo che permette di fare la stessa cosa con una semplice chiamata:
Stream stm1 = ...; // origine Stream stm2 = ...; // destinazione stm1.CopyTo(stm2);