Chapter 31. System.IO
The System.IO
types serve as the primary means for
stream-oriented I/O—files, principally, although the abstract types
defined here serve as base classes for other forms of I/O, such as the XML
stack in System.Xml
. The System.IO
namespace is shown in Figure 31-1 and Figure 31-2.
The System.IO
namespace can be seen as two
distinct partitions: a set of utility types for using and working with the
local machine’s filesystem, and a protocol stack for working with bytestream-oriented
input and output. The former partition is the collection of classes such as
Directory
and
FileSystemWatcher
,
whereas the latter partition is the set of Stream
and Reader/Writer
types.
The Stream
types in
System.IO
follow a basic object
model, similar to the I/O model used by the
C/C++ runtime library: all serial byte access is a stream, and
there are different sources and sinks for this serialized byte
data. In the System.IO
package, this is represented
directly by the abstract base type Stream
; its
concrete subtypes represent the actual I/O access:
FileStream
represents I/O to a file, and MemoryStream
represents I/O to
a literal array of bytes (whose size is dynamically managed) in memory.
Other packages within the .NET Framework Class Library offer up their own
Stream
-derived types. For example, in the System.Net
namespace, socket connections and HTTP responses are offered up as
Stream
-derived types, giving .NET programmers the ability to treat any sort of input or output data ...
Get C# in a Nutshell 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.