
How can you use the File.Open method in your C# program? Found in the System.IO namsespace, File.Open returns a FileStream that you can use. The arguments you pass to it determine its action.
Let's examine this program. First, we use File.Open as part of the using-resource-acquisition pattern; this ensures proper recovery of system resources. The first argument to File.Open is the name of the file we are acting upon. The second argument is a FileMode enumerated constant. With FileMode.Create, we create a new file (or create it again if it already exists). With FileMode.Open, we open an existing file.
Using Statement Calls DisposeProgram that uses File.Open [C#]
using System;
using System.IO;
class Program
{
static void Main()
{
using (FileStream stream = File.Open("C:\\bin", FileMode.Create))
using (BinaryWriter writer = new BinaryWriter(stream))
{
writer.Write(303);
writer.Write(720);
}
using (FileStream stream = File.Open("C:\\bin", FileMode.Open))
using (BinaryReader reader = new BinaryReader(stream))
{
int a = reader.ReadInt32();
int b = reader.ReadInt32();
Console.WriteLine(a);
Console.WriteLine(b);
}
}
}
Output
303
720BinaryWriter and BinaryReader. The BinaryWriter and BinaryReader types are a practical use of FileStream instances. These constructors receive Stream references. Because File.Open returns a FileStream, and FileStream is derived from Stream, we can use FileStream as a Stream in the constructors. The cast is implicit.
Stream Type BinaryWriter Tutorial BinaryReader TutorialRound-tripping. We can see in this program that the numbers 303 and 720 are written to the "C:\bin" file. Then, they are read back into integers from that same file. (As an aside, this is probably one of the most inefficient ways to write two numbers to the screen.)
Let's briefly review the FileMode enumerated type. To use FileMode, type FileMode and press the period key, and then read the descriptions for each constant in Visual Studio. The constants are fairly self-descriptive.
FileMode.Append
FileMode.Create
FileMode.CreateNew
FileMode.Open
FileMode.OpenOrCreate
FileMode.Truncate

Although File.Open serves as a general-purpose solution when paired with FileMode, you can instead call File.OpenRead, File.OpenText, and File.OpenWrite. Conceptually, these methods are the same as using File.Open with certain FileMode arguments.

We looked at practical examples of the File.Open method, and also described the FileMode enumerated type. With the using statement, and the implicit casting in the C# language, we can use File.Open as part of a powerful file-handling construction.
File Handling