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