The System.IO Namespace
The System.IO namespace contains classes that allow you to read and write files on disk. File operations can be performed either synchronously or asynchronously. In order to read and write data, you'll work with the base Stream class, which provides a generic technique to access any data without regard to the underlying platform on which the data resides. Streams can support any combination of reading, writing, and seeking (that is, modifying the current position within a stream). Table 4.3 presents a list of some of the more commonly used classes from the System.IO namespace.
Table 4.3. System.IO Classes
|Class ||Description |
|File ||The File class provides shared methods that allow you to perform actions on physical files on disk. |
|StreamReader ||The StreamReader class allows you to open and read information from a file on disk. |
|StreamWriter ||The StreamWriter class allows you to write to files on disk. |
A File object represents a physical file and allows you to perform actions such as copying and deleting files. The File class provides Exists, Open, OpenRead, OpenText, and OpenWrite methods to allow you to perform file I/O. These methods of the File class are defined as Shared, which means you do not need to create an instance of a File class to use them. You will learn more about shared methods in Chapter 7, "Working with ASP.NET and VB .NET."
The two classes you will use most often from the System.IO namespace are StreamReader and StreamWriter, and you'll learn about these two classes in the following example.
A System.IO Example
The code in Listing 4.1, located under the "IO Classes" hyperlink on Main.aspx, uses a StreamWriter object to create a new text file on disk. The code uses the shared Exists method of the File class to determine whether a file exists on disk. (Although it's perfectly reasonable, and possible, for code to overwrite an existing file, this example doesn't do that.) If the file does not exist, the example creates a new StreamWriter object by invoking the CreateText shared method of the File class. This method creates the file and returns a StreamWriter object that can be used to write information into the file. Once the file is opened, the example uses the WriteLine method to place text into the file on disk. When done using the file, the example closes it to release the handle back to the operating system. Here's the code:
Listing 4.1 Writing to a File Using the Stream and File Objects
Imports System.IO Private Sub WriteFile() Dim strName As String Dim sw As StreamWriter strName = Server.MapPath("Test.txt") If File.Exists(strName) Then lblError.Text = "File Already Exists" Else sw = File.CreateText(strName) sw.WriteLine("The current Time is: " & Now()) sw.Close() End If End Sub