The use of a buffered stream to serve as intermediate data holder for another stream : Stream Read Write « File Stream « C# / C Sharp






The use of a buffered stream to serve as intermediate data holder for another stream

The use of a buffered stream to serve as intermediate data holder for another stream
  
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa

Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
// BufStrm.cs -- demonstates the use of a buffered stream to serve
//               as intermediate data holder for another stream.
//
//                Compile this program with the following command line:
//                    C:>csc BufStrm.cs
using System;
using System.IO;

namespace nsStreams
{
    public class BufStrm
    {
        static public void Main ()
        {
            FileStream strm;
            try
            {
                strm = new FileStream ("./BufStrm.txt",
                                       FileMode.OpenOrCreate,
                                       FileAccess.Write);
            }
            catch (Exception e)
            {
                Console.WriteLine (e.Message);
                Console.WriteLine ("Cannot open ./BufStrm.txt");
                return;
            }
            strm.SetLength (0);
            BufferedStream bstrm = new BufferedStream (strm);
            string str = "Now is the time for all good men to " +
                         "come to the aid of their Teletype.\r\n";
            byte [] b;
            StringToByte (out b, str);
            bstrm.Write (b, 0, b.Length);
// Save the current position to fix an error.
            long Pos = bstrm.Position;
            Console.WriteLine ("The buffered stream position is "
                               + bstrm.Position);
            Console.WriteLine ("The underlying stream position is "
                               + strm.Position);
            str = "the quick red fox jumps over the lazy brown dog.\r\n";
            StringToByte (out b, str);
            bstrm.Write (b, 0, b.Length);
            Console.WriteLine ("\r\nThe buffered stream position is " +
                               bstrm.Position);
            Console.WriteLine ("The underlying stream position is still "
                               + strm.Position);
// Fix the lower case letter at the beginning of the second string
            bstrm.Seek (Pos, SeekOrigin.Begin);
            b[0] = (byte) 'T';
            bstrm.Write (b, 0, 1);
// Flush the buffered stream. This will force the data into the
// underlying stream.
            bstrm.Flush ();
            bstrm.Close ();
            strm.Close ();
        }
//
// Convert a buffer of type string to byte
        static void StringToByte (out byte [] b, string str)
        {
            b = new byte [str.Length];
            for (int x = 0; x < str.Length; ++x)
            {
                b[x] = (byte) str [x];
            }
        }
    }
}


//File: BufStrm.txt
/*
Now is the time for all good men to come to the aid of their Teletype.
The quick red fox jumps over the lazy brown dog.

*/


           
         
    
  








Related examples in the same category

1.Use StreamWriter to create a text file
2.Reading from a text file line by line
3.Read data in line by line
4.StreamReader.ReadLine
5.Catch file read exception and retry
6.Construct StreamWriter from FileSream
7.Create a StreamWriter in UTF8 mode
8.StreamReader And Writer
9.illustrates reading and writing text dataillustrates reading and writing text data
10.Asynchronously reads a streamAsynchronously reads a stream
11.Demonstrates attaching a StreamReader object to a stream
12.Demonstrates attaching a StreamWriter object to a stream
13.A simple key-to-disk utility that demonstrates a StreamWriterA simple key-to-disk utility that 
   demonstrates a StreamWriter
14.Open a file using StreamWriterOpen a file using StreamWriter
15.A help program that uses a disk file to store help informationA help program that uses a disk file 
   to store help information
16.Try and catch exceptions for StreamWriter
17.Using StreamWriter 3
18.Utility class that provides methods to manipulate stream of data.
19.Reads a stream into a byte array.
20.Copies one stream into another.
21.Copy Stream from fromStream to toStream
22.Enumerate Lines for StreamReader
23.Enumerate non-empty Lines for StreamReader
24.Fifo Stream
25.Read from stream
26.Read from a Stream ensuring all the required data is read.
27.Serializes and object to a stream. It will flush and close the underlying stream.
28.Add OutputStream and InputStream to IDbCommand
29.Read Stream to End
30.Copy Stream and close
31.Stream Converter
32.Buffered InputStream
33.Page Filter Stream
34.Copies an Stream into another Stream.