/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example15_14.cs illustrates use of BufferedStreams
*/
using System;
using System.Windows.Forms;
using System.IO;
public class Example15_14
{
[STAThread]
public static void Main()
{
// use an open file dialog to get a filename
OpenFileDialog dlgOpen = new OpenFileDialog();
dlgOpen.Title="Select file to back up";
if (dlgOpen.ShowDialog() == DialogResult.OK)
{
// create the raw streams
FileStream inStream = File.OpenRead(dlgOpen.FileName);
FileStream outStream =
File.OpenWrite(dlgOpen.FileName + ".bak");
// add a buffering layer
BufferedStream bufInStream = new BufferedStream(inStream);
BufferedStream bufOutStream = new BufferedStream(outStream);
byte[] buf = new byte[4096];
int bytesRead;
// copy all data from in to out via the buffer layer
while ((bytesRead = bufInStream.Read(buf, 0, 4096)) > 0)
bufOutStream.Write(buf, 0, bytesRead);
// clean up
bufOutStream.Flush();
bufOutStream.Close();
bufInStream.Close();
outStream.Close();
inStream.Close();
}
}
}