Đọc và ghi text file trong C#



Các lớp StreamReaderStreamWriter trong C# được sử dụng để đọc và ghi dữ liệu tới text file. Những lớp này kế thừa từ lớp abstract cơ sở là Stream, mà hỗ trợ việc đọc và ghi các byte vào trong File Stream.

Lớp StreamReader trong C#

Lớp StreamReader kế thừa từ lớp abstract cơ sở là TextReader mà biểu diễn một reader để đọc một dãy ký tự. Bảng sau miêu tả một số phương thức được sử dụng phổ biến của lớp StreamReader trong C#:

STT Phương thức
1 public override void Close()

Nó đóng đối tượng StreamReader và Underlying Stream, và giải phóng bất kỳ nguồn hệ thống nào được liên kết với Reader đó

2 public override int Peek()

Trả về ký tự có sẵn tiếp theo nhưng không hủy nó

3 public override int Read()

Đọc ký tự tiếp theo từ Input Stream và tăng vị trí ký tự thêm 1

Quảng cáo

Ví dụ

Dưới đây là ví dụ minh họa cách đọc một text file có tên textfile.txt có nội dung sau:

Đọc file trong C#
using System;
using System.IO;

namespace VietJackCsharp
{
    class TestCsharp
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Vi du minh hoa doc File trong C#");
            Console.WriteLine("---------------------------------");

            try
            {
                // tao instance cua StreamReader de doc mot file.
                // lenh using cung duoc su dung de dong StreamReader.
                using (StreamReader sr = new StreamReader("textfile.txt"))
                {
                    string line;

                    // doc va hien thi cac dong trong file cho toi
                    // khi tien toi cuoi file. 
                    while ((line = sr.ReadLine()) != null)
                    {
                        Console.WriteLine(line);
                    }
                }

                Console.ReadKey();
            }
            catch (Exception e)
            {
                // thong bao loi.
                Console.WriteLine("Khong the doc du lieu tu file da cho: ");
                Console.WriteLine(e.Message);
            }

        }
    }
}

Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:

Đọc file trong C#
Quảng cáo

Lớp StreamWriter trong C#

Lớp StreamWriter trong C# kế thừa từ lớp abstract là TextWriter mà biểu diễn một Writer để ghi một dãy ký tự.

Bảng dưới miêu tả các phương thức được sử dụng phổ biến của lớp StreamWriter trong C#:

STT Phương thức
1 public override void Close()

Đóng đối tượng StreamWriter hiện tại và Underlying Stream

2 public override void Flush()

Xóa tất cả buffer cho Writer hiện tại và làm cho bất kỳ dữ liệu được đệm nào để được ghi tới Underlying Stream

3 public virtual void Write(bool value)

Ghi biểu diễn text của một giá trị Boolean tới Text string hoặc stream (được kế thừa từ TextWriter)

4 public override void Write(char value)

Ghi một ký tự tới Stream

5 public virtual void Write(decimal value)

Ghi biểu diễn text của một giá trị thập phân tới Text string hoặc stream

6 public virtual void Write(double value)

Ghi biểu diễn text của một giá trị số thực 8 byte tới Text string hoặc stream

7 public virtual void Write(int value)

Ghi biểu diễn text của một giá trị signed integer 4 byte tới Text string hoặc stream

8 public override void Write(string value)

Ghi một string tới Stream

9 public virtual void WriteLine()

Ghi một line terminator tới Text string hoặc stream

Để có danh sách đầy đủ các phương thức trong lớp StreamWriter, bạn tham khảo Microsoft Documentation về C#.

Ví dụ

Dưới đây là ví dụ minh họa cách ghi dữ liệu text vào trong một file bởi sử dụng lớp StreamWriter trong C#:

Chúng ta tiến hành ghi dữ liệu vào textfile.txt trống rồi sau đó tiến hành đọc và hiển thị dữ liệu trên màn hình.

using System;
using System.IO;

namespace VietJackCsharp
{
    class TestCsharp
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Vi du minh hoa doc va ghi File trong C#");
            Console.WriteLine("---------------------------------");

            string[] names = new string[] { "Tran Van A", "Nguyen Minh B" };
            using (StreamWriter sw = new StreamWriter("textfile.txt"))
            {

                foreach (string s in names)
                {
                    sw.WriteLine(s);
                }
            }

            // doc va hien thi du lieu trong textfile.txt
            string line = "";
            using (StreamReader sr = new StreamReader("textfile.txt"))
            {
                while ((line = sr.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
            Console.ReadKey();
        }
    }
}

Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:

Ghi file trong C#

Mở textfile.txt và kiểm tra nội dung:

Ghi file trong C#

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.


file_io_trong_csharp.jsp