Professional Documents
Culture Documents
No, I haven't turned this into an article about the great outdoors. Streams have their place with computers as well, although I wouldn't recommend getting your computer near one of the traditional kind. Streams are a concept that have been around for a while, but that are new to Microsoft developers via .NET. A stream is a base class used to abstract the specifics of input and output from the underlying device(s). In general, streams support the ability to read or write. Some streams provide additional capabilities such as seek, which allows navigation forward to a specific location. The device could be a physical file, memory, or the network. List of classes that inherit from the Stream base class are as follows: FileStreamread, write, open, and close files MemoryStreamread and write managed memory NetworkStreamread and write between network connections (System.Net namespace) CryptoStreamread and write data through cryptographic transformations BufferedStreamadds buffering to another stream that does not inherently support buffering While the streams are used to abstract the input and output from the device, the stream itself is not directly used to read and write data. Instead, a reader or writer object is used to interact with the stream and perform the physical read and write. Here is a list of classes used for reading and writing to streams: BinaryReader and BinaryWriterread and write binary data to streams StreamReader and StreamWriterread and write characters from streams StringReader and StringWriterread and write characters from Strings TextReader and TextWriterread and write Unicode text from streams
StreamWriter writer = null; try { // Create or open the file fileStream = new FileStream("c:\\mylog.txt", FileMode.OpenOrCreate, FileAccess.Write); writer = new StreamWriter(fileStream); // Set the file pointer to the end of the file writer.BaseStream.Seek(0, SeekOrigin.End); // Force the write to the underlying file and close writer.WriteLine( System.DateTime.Now.ToString() + " - Hello World!"); writer.Flush(); writer.Close(); // Read and display the contents of the file one // line at a time. String fileLine; reader = new StreamReader("c:\\mylog.txt"); while( (fileLine = reader.ReadLine()) != null ) { Console.WriteLine(fileLine); } } finally { // Make sure we cleanup after ourselves if( writer != null ) writer.Close(); if( reader != null ) reader.Close(); } } } }
foreach(DirectoryInfo subDir in dirInfo.GetDirectories()) { Console.WriteLine(Spacer + Spacer + "{0}", subDir.Name); if( subDir.GetDirectories().Length > 0 ) { ProduceListing(subDir, Spacer + " "); } } } } }