File I/O (input/output) in C# allows you to read from and write to files on the disk. This is essential for many applications that need to store data persistently. C# provides classes within the System.IO namespace to handle file operations such as reading, writing, creating, and deleting files.
Key Classes for File I/O
File: Provides static methods for creating, copying, deleting, moving, and opening files, as well as for reading from and writing to a file.
FileInfo: Provides instance methods for creating, copying, deleting, moving, and opening files.
StreamReader: Used for reading characters from a byte stream.
StreamWriter: Used for writing characters to a stream.
// Writing to a file using (StreamWriterwriter=newStreamWriter(filePath)) { writer.WriteLine("Hello, World!"); writer.WriteLine("This is a sample text file."); } Console.WriteLine("Data written to file successfully.");
// Reading from a file using (StreamReaderreader=newStreamReader(filePath)) { stringcontent=reader.ReadToEnd(); Console.WriteLine("File Content:\n"+content); } } }
Explanation of the Example
Writing to a File:
We use a StreamWriter object to write text data to a file.
The using statement ensures that the StreamWriter object is properly disposed of after use.
We specify the file path (example.txt) and write two lines of text to the file using WriteLine.
Reading from a File:
We use a StreamReader object to read text data from the file.
The using statement ensures that the StreamReader object is properly disposed of after use.
We read the entire content of the file using ReadToEnd and print it to the console.
Key Points
File Path: The ‘filePath’ variable indicates the location of the file. In this example, it is set to “example.txt”, which is relative to the application’s working directory.
Safe Resource Management: The ‘using’ statement is employed to ensure that both ‘StreamWriter’ and ‘StreamReader’ objects are disposed of properly. This practice is essential for releasing file handles and preventing resource leaks.
Exception Handling: In real-world applications, it is advisable to incorporate exception handling using try-catch blocks. This helps manage potential I/O errors, such as files not being found or permission issues.
Benefits of File I/O
Data Persistence: File I/O enables your application to store data persistently, allowing you to save and load data across different sessions.
Data Sharing: Files can be easily shared between different applications and systems, promoting data exchange and interoperability.
Backup and Recovery:Writing data to files helps create backups and supports data recovery mechanisms in the event of application failures or data corruption.