Ho bisogno di scrivere il contenuto di un file in un altro file usando i metodi File.OpenRead e File.OpenWrite. Non riesco a capire come farlo.Come scrivere il contenuto di un file in un altro file?
Come posso modificare il seguente codice per funzionare per me.
using (FileStream stream = File.OpenRead("C:\\file1.txt"))
using (FileStream writeStream = File.OpenWrite("D:\\file2.txt"))
{
BinaryReader reader = new BinaryReader(stream);
BinaryWriter writer = new BinaryWriter(writeStream);
writer.Write(reader.ReadBytes(stream.Length));
}
Cosa c'è di sbagliato nel codice che hai postato? Che errore ottieni? –
Sono confuso su dove dovrei leggere tutti i byte in una volta o no? quali sono le implicazioni e inoltre stream.length è lungo mentre reader.ReadBytes si aspetta int. – Sumee
la tua domanda è la chiave - dovresti leggere tutti i byte in una volta o no? L'implicazione è la quantità di memoria che si desidera venga utilizzata dal processo quando viene chiamato questo blocco (in base alla dimensione del file, ovviamente). Leggere tutto in una volta potrebbe costare molta memoria. Altre risposte mostrano come ridurlo in morsi 1K o 4K. Se lo metti a parte, nota che ciò potrebbe comportare una penalizzazione delle prestazioni. Questi sono i tuoi trade-off. Analizza la tua situazione e scegli quale si adatta meglio alle tue esigenze. –