Reading and Writing Data

Reading and writing data is accomplished with the Stream class. Remember streams? This is a chapter about streams.[18]

Stream supports synchronous and asynchronous reads and writes. The .NET Framework provides a number of classes derived from Stream, including FileStream, MemoryStream, and NetworkStream. In addition, there is a BufferedStream class that provides buffered I/O, and can be used with any of the other stream classes. Table 22-5 summarizes the principal classes involved with I/O.

Table 22-5. Principal I/O classes of the .NET Framework

Class

Use

Stream

Abstract class that supports reading and writing bytes

BinaryReader/BinaryWriter

Read and write encoded strings and primitive datatypes to and from streams

File, FileInfo, Directory, DirectoryInfo

Provide implementations for the abstract FileSystemInfo classes, including creating, moving, renaming, and deleting files and directories

FileStream

For reading to and from File objects; supports random access to files; opens files synchronously by default; supports asynchronous file access

TextReader, TextWriter, StringReader, StringWriter

TextReader and TextWriter are abstract classes designed for Unicode character I/O; StringReader and StringWriter write to and from strings, allowing your input and output to be either a stream or a string

BufferedStream

A stream that adds buffering to another stream such as a NetworkStream; BufferedStreams can improve the performance of the stream to which they are attached, but note ...

Get Programming C# 3.0, 5th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.