Chương 9 Đọc và ghi tập tin với C#
 Quản lý hệ thống tập tin  Giới thiệu Stream  Làm việc với tập tin nhị phân  Làm việc với BufferedStream  Làm việc với tập tin văn bản
Bạn đang xem nội dung tài liệu Chương 9 Đọc và ghi tập tin với C#, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Đọc và ghi tập tin với C# 
Giảng viên: Ths. Nguyễn Thị Khiêm Hòa 
Nội dung 
Quản lý hệ thống tập tin 
Giới thiệu Stream 
 Làm việc với tập tin nhị phân 
 Làm việc với BufferedStream 
 Làm việc với tập tin văn bản 
2 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Quản lý hệ thống tập tin 
3 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Quản lý hệ thống tập tin 
 System.MarshalByRefObject – Lớp đối tượng của 
.NET cho phép điều hành dữ liệu giữa các vùng 
ứng dụng. 
 FileSystemInfo – Lớp đối tượng cơ sở biểu diễn 
các file đối tượng hệ thống 
 FileInfo and File – Các lớp thể hiện một file trên 
hệ thống tập tin 
 DirectoryInfo and Directory – Các lớp thể hiện 
một folder trên hệ thống tập tin. 
 Path – Lớp chứa các thành phần tĩnh dùng tạo ra 
các đường dẫn. 
4 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Stream 
 Còn được gọi là luồng dữ liệu 
 Thư viện: System.IO.Stream 
 Là lớp Abstract nên sử dụng thông qua các lớp dẫn xuất 
 Là đối tượng dùng để truyền dữ liệu cho việc đọc ghi dữ 
liệu trên file. 
5 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Stream 
 Các lớp hỗ trợ 
 Stream class 
 FileStream class 
 StreamReader class, StreamWriter class 
 BinaryReader class, BinaryWriter class 
 MemoryStream class 
 BufferedStream class 
6 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Namespace System.IO 
7 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Làm việc với Binary Files 
 Làm việc với lớp FileStream: cho phép mở hoặc tạo 
mới file 
 Khai báo: 
FileStream = new 
FileStream(File, Mode, Access, Share) 
 File: Tên, đường dẫn file cần truy xuất 
 Mode: Append, Create, Createnew, Open, 
OpenOrCreate, Truncate 
 Access: Read, Write, ReadWrite 
 Share: Inheritable, None, Read, ReadWrite, Write. 
 8 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Làm việc với Binary Files 
 BinaryReader class 
 Dùng để đọc file nhị phân 
 Cung cấp các phương thức có dạng 
ReadXXX(ReadByte, ReadInt32…) để đọc nội dung 
file. 
9 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Làm việc với Binary Files 
 Ví dụ Đọc file nhị phân 
FileStream theFile = 
File.Open(@"c:\somefile.bin", 
FileMode.Open); 
BinaryReader reader = new 
BinaryReader(theFile); 
long number = reader.ReadInt64(); 
byte[] bytes = reader.ReadBytes(4); 
string s = reader.ReadString(); 
10 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Làm việc với Binary Files 
 BinaryWriter class 
 Dùng để ghi file nhị phân 
 Cung cấp các phương thức Write với nhiều dạng 
tham số khác nhau để ghi nội dung file. 
11 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Làm việc với Binary Files 
 Ví dụ: Ghi file nhị phân 
FileStream theFile = 
File.Open(@"c:\somefile.bin", 
 FileMode.OpenOrCreate,FileAccess.Write); 
 BinaryWriter writer = new 
 BinaryWriter(theFile); 
 long number = 100; 
 byte[] bytes = new byte[] { 10, 20, 50}; 
 string s = “Toi di hoc"; 
 writer.Write(number); 
 writer.Write(bytes); 
 writer.Write(s); 
12 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Làm việc với BufferedStream 
 Được dùng như bộ nhớ trung gian để đọc dữ liệu giúp việc 
trao đổi dữ liệu nhanh hơn 
 Khai báo: 
Stream = File.OpenRead(Path); 
Stream = File.OpenWrite(Path); 
BufferedStream = new 
BufferedStream (tên Stream) 
13 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Làm việc với BufferedStream 
 Sử dụng: Thông qua phương thức Read() hoặc Write() 
 while ((bytesRead = bufInput.Read(buffer, 
0, SIZE_BUFF)) > 0) 
 { 
 bufOutput.Write(buffer, 0, bytesRead); 
 } 
 Xóa BufferedStream 
bufOutput.Flush(); 
14 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Làm việc với tập tin văn bản 
 Thư viện: StreamReader và StreamWriter 
 Mặc định làm việc với bảng mã Unicode 
 StreamReader được dẫn xuất từ lớp TextReader, cung 
cấp khả năng đọc một dòng ký tự (CharacterStream) 
 StreamWriter được dẫn xuất từ TextWriter cho phép viết 
dữ liệu văn bản lên một dòng văn bản 
15 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Làm việc với Text Files 
16 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
private void ReadFile(string file) 
{ StreamReader reader = new 
StreamReader(file, Encoding.UTF8); 
 richTextBox.Text = reader.ReadToEnd(); 
 reader.Close(); 
} 
void WriteFile(string file) 
{ StreamWriter sw = new StreamWriter(file, 
false, Encoding.Unicode); 
 foreach (string line in richTextBox.Lines) 
 { 
 sw.WriteLine(line); 
 } 
 sw.Close(); 
} 
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 17 
Bài tập 
Tạo Form có menu như mẫu 
Thực hiện việc mở và ghi file 
Thực hiện: 
20 min 
Làm việc với tập tin văn bản 
 Ví dụ: Ghi file văn bản 
FileStream theFile = 
File.Open(@"c:\somefile.txt", 
 FileMode.OpenOrCreate, FileAccess.Write); 
StreamWriter writer = new 
StreamWriter(theFile); 
writer.WriteLine("Hello"); 
writer.Close(); 
theFile.Close(); 
18 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 
Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 19 
Q&A 
            
         
        
    




 
                    