×

Làm việc với file: đọc và ghi dữ liệu trong C#

Khi phát triển ứng dụng trong C#, một trong những nhiệm vụ phổ biến mà các lập trình viên thường gặp là làm việc với các tệp tin để đọc và ghi dữ liệu. Việc này không chỉ đơn giản là thao tác với dữ liệu mà còn liên quan đến nhiều khía cạnh khác như xử lý lỗi, bảo mật và hiệu suất. Bài viết này sẽ hướng dẫn bạn chi tiết cách thực hiện các thao tác này.

Đọc dữ liệu từ tệp tin

Sử dụng lớp StreamReader

StreamReader là một lớp trong C# giúp đọc dữ liệu từ các tệp văn bản một cách dễ dàng và hiệu quả. Để sử dụng lớp này, đầu tiên bạn cần import không gian tên System.IO.

using System.IO;

string filePath = "path/to/your/file.txt";
using (StreamReader reader = new StreamReader(filePath))
{
    string content = reader.ReadToEnd();
    Console.WriteLine(content);
}

Trong ví dụ trên, StreamReader đọc toàn bộ nội dung của tệp và hiển thị nó trên màn hình console.

Đọc từng dòng với StreamReader

Để đọc từng dòng một, bạn có thể sử dụng phương thức ReadLine().

using System.IO;

string filePath = "path/to/your/file.txt";
using (StreamReader reader = new StreamReader(filePath))
{
    string line;
    while ((line = reader.ReadLine()) != null)
    {
        Console.WriteLine(line);
    }
}

Ghi dữ liệu vào tệp tin

Sử dụng lớp StreamWriter

StreamWriter là lớp thường xuyên được sử dụng để ghi dữ liệu vào các tệp văn bản. Dưới đây là ví dụ ghi một chuỗi ký tự vào một tệp tin.

using System.IO;

string filePath = "path/to/your/file.txt";
using (StreamWriter writer = new StreamWriter(filePath))
{
    writer.WriteLine("Hello, world!");
    writer.WriteLine("This is a new line of text.");
}

Thêm dữ liệu mà không ghi đè

Nếu bạn muốn thêm dữ liệu vào một tệp mà không ghi đè dữ liệu hiện có, bạn cần sử dụng đối số true trong hàm khởi tạo của StreamWriter.

using System.IO;

string filePath = "path/to/your/file.txt";
using (StreamWriter writer = new StreamWriter(filePath, true))
{
    writer.WriteLine("Appending this line to the file.");
}

Xử lý lỗi

Khi làm việc với tệp tin, có nhiều loại lỗi có thể xảy ra như tệp tin không tồn tại, quyền truy cập bị từ chối hay hệ thống tập tin bị lỗi. Để đảm bảo ứng dụng của bạn hoạt động trơn tru, bạn cần xử lý các ngoại lệ này.

using System;
using System.IO;

try
{
    string filePath = "path/to/your/file.txt";
    using (StreamReader reader = new StreamReader(filePath))
    {
        string content = reader.ReadToEnd();
        Console.WriteLine(content);
    }
}
catch (FileNotFoundException ex)
{
    Console.WriteLine($"Error: File not found. Details: {ex.Message}");
}
catch (UnauthorizedAccessException ex)
{
    Console.WriteLine($"Error: Access denied. Details: {ex.Message}");
}
catch (Exception ex)
{
    Console.WriteLine($"An unexpected error occurred: {ex.Message}");
}

Kết luận

Làm việc với tệp tin trong C# là một kỹ năng quan trọng và cần thiết cho mọi lập trình viên. Việc hiểu và sử dụng thành thạo các lớp như StreamReaderStreamWriter sẽ giúp bạn dễ dàng thao tác với dữ liệu, từ đó tạo ra những ứng dụng mạnh mẽ và hiệu quả hơn. Hãy luôn nhớ xử lý lỗi cẩn thận để đảm bảo ứng dụng của bạn luôn hoạt động ổn định.

Comments