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

pdf19 trang | Chia sẻ: lylyngoc | Lượt xem: 1853 | Lượt tải: 2download
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