Csharp/CSharp Tutorial/File Directory Stream/BufferedStream — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 15:20, 26 мая 2010

Add a buffering layer to FileStream

<source lang="csharp">using System; using System.Windows.Forms; using System.IO; class MainClass {

 public static void Main() 
 {
   FileStream inStream = File.OpenRead("c:\\text.txt");
   FileStream outStream = File.OpenWrite("c:\\text.txt" + ".bak");
   
   BufferedStream bufInStream = new BufferedStream(inStream);
   BufferedStream bufOutStream = new BufferedStream(outStream);
   byte[] buf = new byte[1024];
   int bytesRead;
   while ((bytesRead = bufInStream.Read(buf, 0, 1024)) > 0)
     bufOutStream.Write(buf, 0, bytesRead);
   bufOutStream.Flush();
   bufOutStream.Close();
   bufInStream.Close();
   outStream.Close();
   inStream.Close();
 }

}</source>

Buffered IO with BufferedStream

<source lang="csharp">using System; using System.IO;

   class Tester
   {
       
       public static void Main()
       {
           int SizeBuff = 1024;
           Stream inputStream = File.OpenRead("folder3.cs");
           Stream outputStream = File.OpenWrite("folder3.bak");
           BufferedStream bufferedInput = new BufferedStream(inputStream);
           BufferedStream bufferedOutput = new BufferedStream(outputStream);
           byte[] buffer = new Byte[SizeBuff];
           int bytesRead;
           while ((bytesRead =
           bufferedInput.Read(buffer, 0, SizeBuff)) > 0)
           {
               bufferedOutput.Write(buffer, 0, bytesRead);
           }
           bufferedOutput.Flush();
           bufferedInput.Close();
           bufferedOutput.Close();
       }
   }</source>

Use BufferedStream

<source lang="csharp">using System; using System.IO; public class MainClass {

   public static int Main(string[] args)
   {
   FileStream dumpFile = new FileStream("Dump.dat", FileMode.Create, FileAccess.ReadWrite);
   BufferedStream myFileBuffer = new BufferedStream(dumpFile);
   
   byte[] str = {127, 0x77, 0x4, 0x0, 0x0, 0x16};
   myFileBuffer.Write(str, 0, str.Length);
   // add changes to file.
   myFileBuffer.Close();  // Flushes.
   dumpFile.Close();  // Flushes.
   return 0;
   }

}</source>