System.IO API Examples
Reading and Writing Files
Explore common operations for interacting with files, including reading content, writing data, and managing file streams.
Example 1: Reading a Text File
using System;
using System.IO;
public class FileReader
{
public static void Main(string[] args)
{
string filePath = "example.txt";
try
{
// Create a dummy file if it doesn't exist
if (!File.Exists(filePath))
{
File.WriteAllText(filePath, "Hello, .NET IO!\nThis is a sample file.\n");
}
// Read all lines from the file
string[] lines = File.ReadAllLines(filePath);
Console.WriteLine($"Contents of {filePath}:");
foreach (string line in lines)
{
Console.WriteLine(line);
}
}
catch (IOException e)
{
Console.WriteLine($"An error occurred: {e.Message}");
}
}
}
Example 2: Writing to a Text File
using System;
using System.IO;
public class FileWriter
{
public static void Main(string[] args)
{
string filePath = "output.txt";
string[] linesToWrite = { "Line 1: Writing data.", "Line 2: Another line of text.", "Line 3: End of file." };
try
{
// Write all lines to the file, overwriting if it exists
File.WriteAllLines(filePath, linesToWrite);
Console.WriteLine($"Successfully wrote to {filePath}");
}
catch (IOException e)
{
Console.WriteLine($"An error occurred: {e.Message}");
}
}
}
Directory Operations
Learn how to create, delete, move, and list directories and their contents.
Example 3: Creating and Listing Directories
using System;
using System.IO;
public class DirectoryManager
{
public static void Main(string[] args)
{
string dirPath = "MyNewDirectory";
string subDirPath = Path.Combine(dirPath, "SubFolder");
try
{
// Create a directory
DirectoryInfo dirInfo = Directory.CreateDirectory(dirPath);
Console.WriteLine($"Directory '{dirInfo.FullName}' created.");
// Create a subdirectory
Directory.CreateDirectory(subDirPath);
Console.WriteLine($"Directory '{subDirPath}' created.");
// List directories in the current path
Console.WriteLine("\nDirectories in current location:");
string[] directories = Directory.GetDirectories(".");
foreach (string dir in directories)
{
Console.WriteLine($"- {dir}");
}
// Clean up (optional)
// Directory.Delete(dirPath, true);
// Console.WriteLine($"Directory '{dirPath}' deleted.");
}
catch (IOException e)
{
Console.WriteLine($"An error occurred: {e.Message}");
}
}
}
File Streams
Understand how to use `FileStream` for more granular control over file reading and writing, including binary data.
Example 4: Using FileStream for Binary Data
using System;
using System.IO;
public class FileStreamExample
{
public static void Main(string[] args)
{
string filePath = "binary_data.bin";
byte[] dataToWrite = { 0x01, 0x02, 0x03, 0xFF, 0xAA };
try
{
// Write binary data using FileStream
using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
fs.Write(dataToWrite, 0, dataToWrite.Length);
Console.WriteLine($"Binary data written to {filePath}");
}
// Read binary data using FileStream
byte[] readData = new byte[dataToWrite.Length];
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
int bytesRead = fs.Read(readData, 0, readData.Length);
Console.WriteLine($"Read {bytesRead} bytes from {filePath}:");
foreach (byte b in readData)
{
Console.Write($"{b:X2} ");
}
Console.WriteLine();
}
}
catch (IOException e)
{
Console.WriteLine($"An error occurred: {e.Message}");
}
}
}