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... các file đối tượng hệ thống hệ
Trang 1Đọc và ghi tập tin với C#
Trang 2Nộ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
Trang 3Quản lý hệ thống tập tin
Trang 4Quản lý hệ thống tập tin
.NET cho phép điều hành dữ liệu giữa các vùng
ứng dụng
các file đối tượng hệ thống
hệ thống tập tin
một folder trên hệ thống tập tin
các đường dẫn
Trang 5Stream
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
Trang 6Stream
Các lớp hỗ trợ
Stream class
FileStream class
StreamReader class, StreamWriter class
BinaryReader class, BinaryWriter class
MemoryStream class
BufferedStream class
Trang 7Namespace System.IO
Trang 8Là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 <tên biến> = 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
Trang 9Là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
Trang 10Là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);
Trang 11Là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
Trang 12Làm việc với Binary Files
FileStream theFile =
File.Open(@"c:\somefile.bin",
FileMode.OpenOrCreate,FileAccess.Write );
BinaryWriter writer = new
long number = 100;
byte[] bytes = new byte[] { 10, 20, 50}; string s = “Toi di hoc";
writer.Write(number);
Trang 13Là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 <tên Stream> = File.OpenRead(Path); Stream <tên Stream> = File.OpenWrite(Path); BufferedStream <tên biến> = new
Trang 14Là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();
Trang 15Là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
Trang 16Làm việc với Text Files
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.Close();
}
Trang 17Bài tập
Thực hiện:
Trang 18Làm việc với tập tin văn bản
FileStream theFile =
File.Open(@"c:\somefile.txt",
FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter writer = new
StreamWriter(theFile);
writer.WriteLine("Hello");
Trang 19Q&A