Hoạt động tập tin nâng cao trong C #

0
377

Ở topic trước mình đã giới thiệu với các bạn các hoạt động cơ bản trên tập tin,chúng ta sẽ tiếp tục phần này với những tính chất và phương thức của lớp  System.IO thường được sử dụng.

Các chủ đề chính:

  1. Đọc từ và viết vào tập tin văn bản

Nó liên quan đến việc đọc và ghi vào tập tin văn bản. Lớp StreamReader và StreamWriter giúp thực hiện điều này.

  1. Đọc từ và viết vào tập tin nhị phân

Nó liên quan đến việc đọc và ghi vào tập tin nhị phân. Các lớp BinaryReader và BinaryWriter lớp giúp thực hiện điều này.

  1. Thao tác với hệ thống file Windows

Nó cho một C # programamer có khả năng duyệt và xác định vị trí tập tin Windows và thư mục.

Topic này trình bày chủ đề 1, hai chủ đề còn lại sẽ trình bài ở bài sau.

Đọc và viết trên tập tin văn bản

Lớp StreamReader và StreamWriter được sử dụng để đọc và ghi dữ liệu vào tập tin văn bản. Những lớp này kế thừa từ lớp trừu tượng cơ sở Stream, hỗ trợ đọc và viết byte vào một dòng tập tin.

Lớp StreamReader

Lớp StreamReader cũng kế thừa từ lớp trừu tượng cơ sở TextReader để đọc hàng loạt các ký tự. Bảng dưới đây mô tả một số phương pháp thường được sử dụng của lớp StreamReader:

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

Nó đóng đối tượng StreamReader và dòng tin, và giả phóng tài nguyên hệ thống liên kết với công cụ đọc.

2 public override int Peek()

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

3 public override int Read()

Đọc các ký tự từ các dòng đầu vào và đi qua từng ký tự.

Thí dụ

Ví dụ sau đây chứng tỏ đọc một tập tin văn bản có tên Jamaica.txt. File được đọc là:

Xuống con đường nơi màn đêm là bóng tối
Và mặt trời chiếu sáng hàng ngày trên đỉnh núi
Tôi lấy một chuyến đi trên một con thuyền buồm
Và khi tôi đến Jamaica
Tôi đã dừng lại
using System;
using System.IO;

namespace FileApplication
{
   class Program
   {
      static void Main(string[] args)
      {
         try
         {
            // Tạo một thể hiện của StreamReader để đọc từ một tập tin.
            // Những câu lệnh làm đóng StreamReader.
            using (StreamReader sr = new StreamReader("c:/jamaica.txt"))
            {
               string line;
               // Đọc và hiển thị các dòng từ tập tin
               // Kết thúc tập tin
               while ((line = sr.ReadLine()) != null)
               {
                  Console.WriteLine(line);
               }
            }
         }
         catch (Exception e)
         {
            
            // Để cho người dùng biết những gì đã bị sai.
            Console.WriteLine("File không thể đọc: ");
            Console.WriteLine(e.Message);
         }         
         Console.ReadKey();
      }
   }
}

Hãy đoán xem nó sẽ hiển thị gì khi bạn biên dịch và thực thi chương trình!

Lớp StreamWriter

Lớp StreamWriter kế thừa từ lớp TextWriter, nó có thể viết một loạt các ký tự.

Bảng dưới đây mô tả các phương thứuc thường được sử dụng nhất của lớp này:

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

Đóng đối tượng StreamWriter hiện tại và dòng cơ bản.

2 public override void Flush()

Xóa tất cả các bộ đệm hiện tại và làm cho dữ liệu trên Buffered phải được ghi vào dòng cơ bản.

3 public virtual void Write(bool value)

Viết biểu diễn dạng văn bản của một giá trị Boolean bằng chuỗi hoặc dòng văn bản. (Kế thừa từ TextWriter.)

4 public override void Write(char value)

Ghi một ký tự lên dòng.

5 public virtual void Write(decimal value)

Viết biểu diễn văn bản của một giá trị thập phân bằng chuỗi hoặc dòng văn bản.

6 public virtual void Write(double value)

Viết biểu diễn văn bản của một giá trị số nguyên(8 byte) bằng chuỗi hoặc dòng văn bản.

7 public virtual void Write(int value)

Viết biểu diễn văn bản của một giá trị số nguyên(4 byte) bằng chuỗi hoặc dòng văn bản.

8 public override void Write(string value)

Ghi một dòng chuỗi.

9 public virtual void WriteLine()

Viết một chuỗi hoặc dòng văn bản.

Ví dụ

Ví dụ dưới đây trình bày việc ghi dữ liệu văn bản thành một file bằng lớp StreamWriter:

using System;
using System.IO;

namespace FileApplication
{
   class Program
   {
      static void Main(string[] args)
      {
      
         string[] names = new string[] {"AHIHI", "DO NGOC"}; //TAO MANG 2 STRING
         using (StreamWriter sw = new StreamWriter("names.txt"))
         {
            
            foreach (string s in names)
            {
               sw.WriteLine(s);
            }
         }
         
         // Đọc và hiển thị mỗi dòng từ tập tin.
         string line = "";
         using (StreamReader sr = new StreamReader("names.txt"))
         {
            while ((line = sr.ReadLine()) != null)
            {
               Console.WriteLine(line);
            }
         }
         
         Console.ReadKey();
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra các kết quả như sau:

AHIHI
DO NGOC

Chúc bạn thành công !

This site uses Akismet to reduce spam. Learn how your comment data is processed.