Một tập tin là một tập hợp các dữ liệu được lưu trữ trong một đĩa với một tên cụ thể và một đường dẫn thư mục. Khi một tập tin được mở để đọc hoặc viết, nó sẽ trở thành một luồng tin.
Các luồng tin cơ bản là trình tự của byte đi qua con đường truyền thông. Có hai luồng chính: luồng đầu vào và luồng đầu ra. Các luồng đầu vào được sử dụng để đọc dữ liệu từ tập tin (đọc hoạt động) và các luồng sản lượng được sử dụng cho việc ghi lên tập tin (ghi hoạt động).
Lớp I/O
Namespace System.IO có các lớp khác nhau được sử dụng để thực hiện nhiều hoạt động với các tập tin, chẳng hạn như việc tạo và xóa các tập tin, đọc hoặc viết vào một tập tin, đóng một tập tin, vv..
Bảng dưới đây cho thấy một số lớp không trừu tượng thường được sử dụng trong namespace System.IO:
Lớp I/O | Mô tả |
BinaryReader | Đọc dữ liệu nguyên bản từ một dòng nhị phân. |
BinaryWriter | Đọc dữ liệu nguyên bản từ một dòng nhị phân. |
BufferedStream | Một lưu trữ tạm thời cho một dòng các byte. |
Directory | Giúp trong việc điều khiển một cấu trúc thư mục. |
DirectoryInfo | Được sử dụng để thực hiện các hoạt động trên các thư mục. |
DriveInfo | Cung cấp thông tin cho các ổ đĩa. |
File | Giúp thao tác tập tin. |
FileInfo | Được sử dụng để thực hiện các hoạt động trên các tập tin. |
FileStream | Được sử dụng để đọc và ghi vào vị trí bất kỳ trong một tập tin. |
MemoryStream | Được sử dụng để truy cập ngẫu nhiên luồng dữ liệu lưu trong bộ nhớ. |
Path | Thực hiện các hoạt động về thông tin đường dẫn. |
StreamReader | Được sử dụng để đọc các ký tự từ một dòng byte. |
StreamWriter | Được sử dụng để ghi các ký tự lên một dòng byte. |
StringReader | Được sử dụng để đọc từ một bộ đệm chuỗi. |
StringWriter | Được sử dụng để ghi lên một bộ đệm chuỗi. |
Lớp FileStream
Các lớp FileStream trong namespace System.IO giúp đọc, ghi và đóng file. Lớp này xuất phát từ lớp trừu tượng Stream.
Bạn cần phải tạo ra một đối tượng FileStream để tạo ra một tập tin mới hoặc mở một tập tin hiện có. Cú pháp để tạo một đối tượng FileStream là như sau:
FileStream <Ten-doi-tuong> = new FileStream( <ten_file>, <FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);
Ví dụ, chúng ta tạo ra một đối tượng FileStream F cho đọc một tập tin có tên sample.text như sau:
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
Tham số | Mô tả |
FileMode | FileMode chứa các phương thức khác nhau để mở tập tin. Các thành viên cảu FileMode là:
|
FileAccess | FileAccess bao gồm các thành phần: Read, ReadWrite and Write. |
FileShare | FileShare bao gồm các thành viên sau:
|
Ví dụ
Chương trình sau minh họa cách sử dụng lớp FileStream:
using System; using System.IO; namespace FileIOApplication { class Program { static void Main(string[] args) { //Tao doi tuong FileStream FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite); for (int i = 1; i <= 20; i++) { F.WriteByte((byte)i); //Tao mot dong Byte } F.Position = 0; //Dat ve vi tri byte dau tien for (int i = 0; i <= 20; i++) { Console.Write(F.ReadByte() + " "); //Doc dong Byte va in ra man hinh } F.Close(); //Dong doi tuong FileStream 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1
Hoạt động tập tin nâng cao trong C #
Ví dụ trước cung cấp cho hoạt động tập tin đơn giản trong C #. Tuy nhiên, để sử dụng các quyền hạn lớn hơn của lớp C # System.IO, bạn cần phải biết các tính chất và phương pháp của các lớp này thường được sử dụng.
(Phần này mình sẽ giới thiệu chi tiết ở bài viết tiếp theo, các bạn nhớ theo dõi).
Chúc bạn thành công!