http://vietjack.com/csharp/index.jsp Copyright © vietjack.com File I/O C# Một file tập hợp liệu lưu giữ disk với tên cụ thể path thư mục Khi file mở để đọc ghi, trở thành stream Về bản, stream dãy byte truyền qua path Có hai stream quan trọng: Input streamvà Output stream Input stream sử dụng để đọc liệu từ file (hoạt động read) Output stream sử dụng để ghi vào file (hoạt động write) Lớp I/O C# System.IO namespace có nhiều lớp đa dạng mà sử dụng để thực hoạt động khác với File, tạo xóa file, đọc ghi File, đóng File, … Bảng sau hiển thị số lớp non-abstract sử dụng phổ biến System.IO namespace C#: I/O Class Miêu tả BinaryReader Đọc liệu gốc (primitive data) từ binary stream BinaryWriter Ghi liệu gốc định dạng nhị phân BufferedStream Một nơi lưu giữ tạm thời cho stream Directory Giúp ích việc thao tác cấu trúc thư mục DirectoryInfo Được sử dụng để thực hoạt động thư mục DriveInfo Cung cấp thông tin cho Drive File Giúp ích việc thao tác File FileInfo Được sử dụng để thực hoạt động File http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com FileStream Được sử dụng để đọc ghi vị trí File MemoryStream Được sử dụng để truy cập ngẫu nhiên tới stream lưu giữ nhớ Path Thực hoạt động thông tin path StreamReader Được sử dụng để đọc ký tự từ stream StreamWriter Được sử dụng để ghi ký tự tới stream StringReader Được sử dụng để đọc từ string buffer StringWriter Được sử dụng để ghi vào string buffer Lớp FileStream C# Lớp FileStream System.IO namespace C# giúp đỡ việc đọc từ, ghi đóng File Lớp kế thừa từ lớp abstract Stream Bạn cần tạo đối tượng FileStream để tạo File mở File tồn Cú pháp để tạo đối tượng FileStream C# sau: FileStream = new FileStream( , , , ); Ví dụ: tạo đối tượng FileStream F để đọc File với tên sample.txt, sau: FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read); Tham số Miêu tả FileMode FileMode enumerator định nghĩa phương thức đa dạng để mở File Các thành viên FileMode enumerator là: http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com Append: Nó mở File tồn đặt trỏ phần cuối File, tạo File, File chưa tồn Create: Nó tạo File CreateNew: Nó xác định tới Hệ điều hành nên tạo File Open: Nó mở File tồn OpenOrCreate: Nó xác định tới Hệ điều hành nên mở File tồn tại, khơng nên tạo File Truncate: Nó mở File tồn truncate (cắt) kích cỡ byte FileAccess FileShare FileAccess enumerators có thành viên là: Read, ReadWrite vàWrite FileShare enumerators có thành viên sau: Inheritable: Nó cho phép File truyền tính kế thừa tới tiến trình None: Nó từ chối việc chia sẻ File Read: Nó cho phép mở File để đọc ReadWrite: Nó cho phép mở File để đọc ghi Write: Nó cho phép mở File để ghi Ví dụ Dưới ví dụ minh họa cách sử dụng lớp FileStream C#: using System; using System.IO; http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com namespace FileIOApplication { class Program { static void Main(string[] args) { FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite); for (int i = 1; i