Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Bài 7 - Xử lý nhập xuất - Nền tảng lập trình ứng dụng với C#
1. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
1
2. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài 7: Xử lý nhập/xuất dữ liệu
• Khái niệm về các loại tập tin
• Xử lý hệ thống tập tin và thư mục qua các lớp
• Xử lý đọc ghi tập tinXử lý đọc ghi tập tin
2
- 8 tiết -
3. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm về các loại tập tin
ố ể ể ố ể• Đối với các kiểu dữ liệu như kiểu số, kiểu
mảng, kiểu cấu trúc… thì dữ liệu được tổ chức
trong bộ nhớ trong (RAM) của máy tính nên khitrong bộ nhớ trong (RAM) của máy tính nên khi
kết thúc việc thực hiện chương trình thì dữ
liệu cũng bị mất
• Để giải quyết vấn đề, người ta đưa ra kiểu tập
tin (file) cho phép lưu trữ dữ liệu ở bộ nhớ
ài (đĩ ) Khi kết thú h t ì h thì dữngoài (đĩa). Khi kết thúc chương trình thì dữ
liệu vẫn còn do đó chúng ta có thể sử dụng
nhiều lần.
3
nhiều lần.
4. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm về các loại tập tin
ể• Có 3 loại dữ liệu kiểu tập tin:
− Tập tin văn bản (Text File)
− Tập tin định kiểu (Typed File)
− Tập tin không định kiểu (Untyped File)
4
5. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm về các loại tập tin
• Tập tin văn bản (Text File):
− Là loại tập tin dùng để ghi các ký tự lên đĩa, các ký tự
này được lưu trữ dưới dạng mã Asciinày được lưu trữ dưới dạng mã Ascii.
− Điểm đặc biệt là dữ liệu của tập tin được lưu trữ thành
các dòng, mỗi dòng được kết thúc bằng ký tự xuốngcác dòng, mỗi dòng được kết thúc bằng ký tự xuống
dòng (new line), ký hiệu ‘n’; ký tự này là sự kết hợp của
2 ký tự CR (Carriage Return - Về đầu dòng, mã Ascii là
13) và LF (Line Feed - Xuống dòng, mã Ascii là 10)13) và LF (Line Feed Xuống dòng, mã Ascii là 10)
− Mỗi tập tin được kết thúc bởi ký tự EOF (End Of File) có
mã Ascii là 26
5
− Tập tin văn bản chỉ có thể truy xuất theo kiểu tuần tự.
6. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm về các loại tập tin
ể• Tập tin định kiểu (Typed File)
− Là loại tập tin bao gồm nhiều phần tử có cùng kiểu:
char int long cấu trúc và được lưu trữ trên đĩa dướichar, int, long, cấu trúc… và được lưu trữ trên đĩa dưới
dạng một chuỗi các byte liên tục.
• Tập tin không định kiểu (Untyped File)Tập tin không định kiểu (Untyped File)
− Là loại tập tin mà dữ liệu của chúng bao gồm các cấu
trúc dữ liệu nhưng người dùng không quan tâm đến nộiệ g g g g q ộ
dung hoặc kiểu của nó mà chỉ lưu ý đến các yếu tố vật
lý của tập tin như độ lớn và các yếu tố tác động lên tập
tin mà thôi.
6
7. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm về các loại tập tin
• C t ỏ tậ ti• Con trỏ tập tin:
− Khi một tập tin được mở ra để làm việc, tại mỗi thời
điểm, sẽ có một vị trí của tập tin mà tại đó việc đọc/ghiđiểm, sẽ có một vị trí của tập tin mà tại đó việc đọc/ghi
thông tin sẽ xảy ra. Người ta hình dung có một con trỏ
đang chỉ đến vị trí đó và đặt tên nó là con trỏ tập tin.
− Sau khi đọc/ghi xong dữ liệu con trỏ sẽ chuyển dịch− Sau khi đọc/ghi xong dữ liệu, con trỏ sẽ chuyển dịch
thêm một phần tử về phía cuối tập tin. Sau phần tử dữ
liệu cuối cùng của tập tin là dấu kết thúc tập tin EOF
(End Of File).(End Of File).
7
8. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm về các loại tập tin
• Biế tậ ti• Biến tập tin:
− Là một biến thuộc kiểu dữ liệu tập tin dùng để đại diện
cho một tập tin. Dữ liệu chứa trong một tập tin được truycho một tập tin. Dữ liệu chứa trong một tập tin được truy
xuất qua các thao tác với thông số là biến tập tin đại
diện cho tập tin đó.
8
9. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài 7: Xử lý nhập/xuất dữ liệu
• Khái niệm về các loại tập tin
• Xử lý hệ thống tập tin và thư mục qua các lớp
• Xử lý đọc ghi tập tinXử lý đọc ghi tập tin
9
10. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý hệ thống tập tin và thư mục
• FileSystemInfo
• FileInfoFileInfo
• DirectoryInfo
• DriveInfo
• Path
• FileSystemWatcher
10
11. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các lớp hệ thống tập tin
• Bên trong namespace có tên System.IO là một
tập hợp các class được sử dụng để định vị và
ếthao tác các tập tin, thư mục và thiết bị. Các
class hệ thống tập tin được chia thành 2 loại
class: informational và utilityclass: informational và utility.
• Hầu hết các class loại informational dẫn xuất từ
l ở Fil S I f Cá l àclass cơ sở FileSystemInfo. Các class này
trưng tất cả thông tin hệ thống liên quân các đối
tượng hệ thống tập tin Đó là các class có tên
11
tượng hệ thống tập tin. Đó là các class có tên
FileInfo và DirectoryInfo.
12. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các lớp hệ thống tập tin
• Ngoài ra, class DriveInfo trình bày thiết bị trong hệ
thống tập tin, mặc dù nó vẫn là một class thuộc loại
informational, tuy nhiên nó không dẫn xuất từinformational, tuy nhiên nó không dẫn xuất từ
FileSystemInfo bởi lẽ nó không chia sẻ các kiểu hành vi
chung (ví dụ, bạn có thể xóa các tập tin và thư mục,
nhưng không thể xóa các thiết bị)nhưng không thể xóa các thiết bị).
• Các class loại utility cung cấp các phương thức static
(hoặc phương thức shared trong Visual Basic) để thực(hoặc phương thức shared trong Visual Basic) để thực
thi một số hoật động trên các đối tượng hệ thống tập tin
như các tập tin, thư mục và hệ thống tập tin đường dẫn
( th ) Cá l l i tilit b ồ á l Fil
12
(paths). Các class loại utility bao gồm các class : File,
Directory, và Path
13. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileSystemInfo Class
• FileSystemInfo cung cấp các chức năng cơ bản cho tất
cả các lớp xử lý hệ thống tập tin và thư mục
• Bảng các thuộc tính chính của FileSystemInfo• Bảng các thuộc tính chính của FileSystemInfo
Thuộc tính Ý nghĩa
Attributes
Gán hoặc lấy giá trị các thuộc tính của tập tin hay
thư mục hiện hành.
CreationTime
Gán hoặc lấy giá trị về thời gian tạo lập của tập tin
CreationTime
ặ y g ị g ạ ập ập
hay thư mục.
Exists Kiểm tra tập tin hay thư mục có tồn tại hay không.
13
Extension Lấy thông tin phần mở rộng (kiểu) của tập tin
14. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileSystemInfo Class
Bảng các thuộc tính chính của FileSystemInfo
Thuộc tính Ý nghĩaThuộc tính Ý nghĩa
LastAccessTime
Gán hoặc lấy giá trị về thời gian truy cập cuối cùng
của tập tin hay thư mục.
LastWriteTime
Gets or sets the time the file or directory was last
written to.
Name Trả về tên của tập tin hay thư mục
ấ ẫ ầ
14
FullName Lấy đường dẫn đầy đủ của tập tin hay thư mục
15. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileSystemInfo Class
Bảng các phương thức chính của FileSystemInfo
Phương thức Ý nghĩaPhương thức Ý nghĩa
Delete Xóa tập tin hay thư mục trong hệ thống tập tin.
Refresh
Cập nhật lại dữ liệu trong class với thông tin
mới nhất từ hệ thống tập tin
15
16. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý hệ thống tập tin và thư mục
• FileSystemInfo
• FileInfoFileInfo
• DirectoryInfo
• DriveInfo
• Path
• FileSystemWatcher
16
17. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileInfo Class
• FileInfo cung cấp các chức năng cơ bản để truy xuất và
thao tác với một tập tin trong hệ thống tập tin.
• Bả á th ộ tí h hí h ủ Fil I f• Bảng các thuộc tính chính của FileInfo
Thuộc tính Ý nghĩa
T ả ề th hứ tậ ti hiệ hà h đ
Directory
Trả về thư mục chứa tập tin hiện hành đang
truy xuất
DirectoryName
Trả về tên của thư mục chứa tập tin đang truy
ấ
DirectoryName
xuất
IsReadOnly Lấy và thiết lập thông tin chỉ đọc cho tập tin
17
Length Kích thước của tập tin
18. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileInfo Class
• Bả á h thứ hí h ủ Fil I f
Phương thức Ý nghĩa
ố
• Bảng các phương thức chính của FileInfo
AppendText
Tạo một đối tượng StreamWriter cho phép ghi
thêm văn bản vào trong tập tin.
CopyTo Sao chép tập tin đến thư mục khácCopyTo Sao chép tập tin đến thư mục khác
Create
Tạo một tập tin mới dựa trên các thông tin của
tập tin hiện hànhCreates a file based on the
current file informationcurrent file information.
CreateText
Tạo một đối tượng StreamWriter cho phép ghi
văn bản vào trong tập tin.
18
19. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileInfo Class
• Bảng các phương thức chính của FileInfo
Name Description
Decrypt Giải mã tập tin đã được mã hóa
• Bảng các phương thức chính của FileInfo
Decrypt Giải mã tập tin đã được mã hóa.
Encrypt Mã hóa nội dung tập tin.
MoveTo Di chuyển tập tin đến thư mục khácMoveTo Di chuyển tập tin đến thư mục khác
Open Mở tập tin để đọc hoặc ghi nội dung
OpenRead Mở tập tin ở chế độ chỉ đọc.
OpenText Mở tập tin và trả về một StreamReader cho phép đọc nội
dung bên trong tập tin.
OpenWrite Mở tập tin ở chế độ chỉ ghi
19
OpenWrite Mở tập tin ở chế độ chỉ ghi.
Replace Thay thế nội dung của tập tin bằng thông tin trong FileInfo
20. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Ví dụ
• Kiểm tra tập tin có tồn tại hay không:• Kiểm tra tập tin có tồn tại hay không:
• Sao chép tập tinp ập
20
21. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý hệ thống tập tin và thư mục
• FileSystemInfo
• FileInfoFileInfo
• DirectoryInfo
• DriveInfo
• Path
• FileSystemWatcher
21
22. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
DirectoryInfo Class
• DirectoryInfo cung cấp các chức năng cơ bản để truy
xuất và thao tác với một thư mục trong hệ thống tập tin.
• Bảng các thuộc tính chính của DirectoryInfo• Bảng các thuộc tính chính của DirectoryInfo
Thuộc tính Ý nghĩa
Parent
Trả về thư mục chứa (thư mục cha) của thư mục
hiện hành đang truy xuất
Root
Trả về thư mục gốc trong chuỗi đường dẫn của thư
Root
ụ g g g
mục hiện hành
22
23. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
DirectoryInfo Class
• Bả á h thứ hí h ủ Di t I f
Phương thức Ý nghĩa
• Bảng các phương thức chính của DirectoryInfo
Create
Tạo thư mục theo thông tin được mô tả trong
DirectoryInfo.
CreateSubdirectory Tạo thư mục con của thư mục hiện hànhCreateSubdirectory Tạo thư mục con của thư mục hiện hành
GetDirectories
Trả về một mảng đối tượng kiểu DirectoryInfo
gồm các thư mục con trong thư mục hiện
hà hhành
GetFiles
Trả về một mảng đối tượng kiểu FileInfo gồm
các tập tin trong thư mục hiện hành
23
ập g ụ ệ
24. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
DirectoryInfo Class
• Bả á h thứ hí h ủ Di t I f
Phương thức Ý nghĩa
ả ề ộ ả ố ể
• Bảng các phương thức chính của DirectoryInfo
GetFileSystemInfos
Trả về một mảng đối tượng kiểu
FileSystemInfo gồm các tập tin và thư mục
trong thư mục hiện hành
MoveTo Di chuyển thư mục hiện hành sang vị trí khác
24
25. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
DirectoryInfo Class
• Ví dụ: Duyệt qua các tập tin có trong thư mục
Windows:
25
26. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý hệ thống tập tin và thư mục
• FileSystemInfo
• FileInfoFileInfo
• DirectoryInfo
• DriveInfo
• Path
• FileSystemWatcher
26
27. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
DriveInfo Class
• DirectoryInfo cung cấp các chức năng cơ bản để truy
xuất và thao tác với một ổ đĩa trong hệ thống tập tin.
• Bảng các thuộc tính chính của DriveInfo• Bảng các thuộc tính chính của DriveInfo
Tên thuộc tính Ý nghĩa
AvailableFreeSpace
Trả về kích thước còn trống cho phép lưu trữ
trên ổ đĩa
DriveFormat
Trả về thông tin định dạng của ổ đĩa (NTFS,
DriveFormat
g ị ạ g ( ,
FAT32…)
DriveType Trả về kiểu của ổ đĩa (ổ đĩa cứng, CDRom…)
27
28. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
DriveInfo Class
• Bảng các thuộc tính chính của DriveInfo
Thuộc tính Ý nghĩa
Trả về trạng thái của ổ đĩa (có sẵn sàng cho phép
• Bảng các thuộc tính chính của DriveInfo
IsReady
Trả về trạng thái của ổ đĩa (có sẵn sàng cho phép
truy xuất hay không).
Name Tên của ổ đĩa.
TotalFreeSpace Trả về tổng kích thước còn trống của ổ đĩa.
T t lSi T ả ề tổ kí h th ớ ủ ổ đĩTotalSize Trả về tổng kích thước của ổ đĩa.
VolumeLabel Trả về nhãn của ổ đĩa.
28
29. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
DriveInfo Class
• Bả h thứ hí h ủ D i I f
Phương thức Ý nghĩa
• Bảng phương thức chính của DriveInfo
GetDrives
Trả về tất cả các ổ đĩa hiện có trên hệ thống
(phương thức tĩnh – static)
29
30. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
DriveInfo Class
• Bả á thà h hầ ủ kiể liệt kê D i T
Thành phần Ý nghĩa
ổ
• Bảng các thành phần của kiểu liệt kê DriveType
CDRom ổ đĩa quang (CD-ROM, DVD…).
Fixed ổ đĩa cố định (ổ đĩa cứng)
Network ổ đĩa mạng
NoRootDirectory ổ đĩa không có thư mục gốc
Ram ổ đĩa RAM (được tạo từ RAM)
Removable ổ đĩa di động (USB)
30
Unknown ổ đĩa không xác định.
31. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
DriveInfo Class
• Ví d d ệt á ổ đĩ ó t hệ thố• Ví dụ: duyệt qua các ổ đĩa có trong hệ thống
31
32. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý hệ thống tập tin và thư mục
• FileSystemInfo
• FileInfoFileInfo
• DirectoryInfo
• DriveInfo
• Path
• FileSystemWatcher
32
33. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Path Class
• Path cung cấp các chức năng cơ bản để truy xuất và thao
tác với đường dẫn hệ thống tập tin.
• Bảng các phương thức chính của Path• Bảng các phương thức chính của Path
Phương thức Ý nghĩa
ChangeExtension
Trả về chuỗi đường dẫn đống thời đổi phần mở
rộng của tập tin trong chuỗi đường dẫn
C bi
Trả về 1 chuỗi đường dẫn bằng cách kết hợp 2
Combine
g g ợp
chuỗi đường dẫn.
GetDirectoryName Trả về tên của thư mục hiện hành
33
34. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Path Class
• Bả á h thứ hí h ủ P th
Phương thức Ý nghĩa
ề ể
• Bảng các phương thức chính của Path
GetExtension Trả về kiểu của tập tin hiện hành
GetFileName Trả về tên của tập tin hiện hành
GetFileNameWithout
Extension
Trả về kiểu của tập tin hiện hành không có
phần kiểu
GetFullPath
Trả về đường dẫn đầy đủ dựa vào đường dẫn
GetFullPath
g y ự g
tương đối được cung cấp
GetPathRoot
Trả về thư mục gốc dựa vào đường dẫn được
cung cấp
34
g p
35. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Path Class
• Bả á h thứ hí h ủ P th
Phương thức Ý nghĩa
T ả ề tê tậ ti đ lấ ột á h ẫ
• Bảng các phương thức chính của Path
GetRandomFileName
Trả về tên tập tin được lấy một cách ngẫu
nhiên
GetTempFileName
Trả về tên của thư mục tạm (thư mục temp)
ứ ới ời dù hiệ hà h
GetTempFileName
ứng với người dùng hiện hành
GetTempPath
Trả về đường dẫn đến thư mục tạm (thư
mục temp)
HasExtension
Kiểm tra trong đường dẫn có phần mở rộng
của tập tin hay không
I P thR t d
Kiểm tra đường dẫn có bắt đầu từ thư mục
35
IsPathRooted
Kiểm tra đường dẫn có bắt đầu từ thư mục
gốc (tên ổ đĩa) hay không
36. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Path Class
• Ví d th đổi hầ ở ộ ủ tậ ti• Ví dụ: thay đổi phần mở rộng của tập tin
36
37. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý hệ thống tập tin và thư mục
• FileSystemInfo
• FileInfoFileInfo
• DirectoryInfo
• DriveInfo
• Path
• FileSystemWatcher
37
38. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileSystemWatcher Class
• FileSystemWatcher cung cấp các chức năng cơ bản để
giám sát các thay đổi trong hệ thống tập tin và thư mục.
• Bảng các thuộc tính chính của FileSystemWatcher• Bảng các thuộc tính chính của FileSystemWatcher
Thuộc tính Ý nghĩa
EnableRaisingEvents
Lấy và thiết lập thông tin cho phép phát sinh sự
kiện.
Lấy và thiết lập danh sách tập tin sẽ được lọc khi
Filter
y ập ập ợ ọ
giám sát. Nếu không thiết lập thì sẽ giám sát tất
cả các tập tin.
I l d S bdi t i Ch hé iá át á th h khô
38
IncludeSubdirectories Cho phép giám sát các thư mục con hay không.
39. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileSystemWatcher Class
• Bảng các thuộc tính chính của FileSystemWatcher
Thuộc tính Ý nghĩa
Chế độ iá át Mặ đị h ẽ iá át tất ả
NotifyFilter
Chế độ giám sát. Mặc định sẽ giám sát tất cả
các thay đổi (tạo, xóa, đổi tên và hiệu chỉnh nội
dung trong tập tin).
• Phương thức chính của FileSystemWatcher
Path Đường dẫn đến thư mục cần giám sát.
g y
Phương thức Ý nghĩa
WaitForChanged Phương thức đồng bộ trong việc giám sát một
ề ấ ồ ấ
39
g g g g g
thư mục và trả về cấu trúc bao gồm tất cả các
thay đổi trên thư mục đó
40. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileSystemWatcher Class
• Bảng các sự kiện chính của FileSystemWatcher
Sự kiện Ý nghĩa
Changed
Xảy ra khi một tập tin hay một thư mục bị thay đổi
trong thư mục được giám sát
Xảy ra khi một tập tin hay một thư mục vừa mới
Created
Xảy ra khi một tập tin hay một thư mục vừa mới
được tạo trong thư mục được giám sát
Deleted
Xảy ra khi một tập tin hay một thư mục bị xóa trong
thư mục được giám sátthư mục được giám sát
Renamed
Xảy ra khi một tập tin hay một thư mục bị đổi tên
trong thư mục được giám sát
40
41. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileSystemWatcher Class
• Ví dụ 1: giám sát việc tạo và xóa tập tin, thư mục trên
thư mục gốc đĩa C:
41
42. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileSystemWatcher Class
ổ• Ví dụ 2: giám sát việc sửa đổi tên tập tin và thư mục trên
thư mục gốc đĩa C:
42
43. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài 7: Xử lý nhập/xuất dữ liệu
• Khái niệm về các loại tập tin
• Xử lý hệ thống tập tin và thư mục qua các lớp
• Xử lý đọc ghi tập tinXử lý đọc ghi tập tin
43
- 8 tiết -
44. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý đọc ghi tập tin
• Stream
• Directory FileDirectory, File
• FileStream
• StreamReader, StreamWriter
• StringReader, StringWriterg g
• BinaryReader, BinaryWriter
• MemoryStream BufferedStream
44
• MemoryStream, BufferedStream
45. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Stream
ổ ế ấ ể ấ• Sử dụng Stream là cách phổ biến nhất để truy xuất dữ
liệu dạng tuần tự hay ngẫu nhiên trong .NET Framework
• Bảng các thuộc tính của Stream:• Bảng các thuộc tính của Stream:
Thuộc tính Ý nghĩa
CanRead
Kiểm tra có hổ đọc dữ liệu theo luồng (stream)
hay không
CanSeek
Kiểm tra có hỗ trợ định vị theo luồng (stream) hay
CanSeek
ợ ị ị g ( ) y
không
CanWrite
Kiểm tra có hổ trợ ghi dữ liệu theo luồng (stream)
hay không
45
y g
CanTimeout Kiểm tra có hỗ trợ thời gian tạm ngưng hay không
46. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Stream
• Bảng các thuộc tính của Stream:
Thuộc tính Ý nghĩa
Length
Trả về kích thước (bytes) của luồng dữ liệu
(stream)
Position
Lấy và thiết lập vị trí con trỏ hiện hành trong
Position
y ập ị ệ g
luồng dữ liệu để xác định vị trí bắt đầu đọc/ghi
CanWrite
Kiểm tra có hổ ghi dữ liệu theo luồng (stream)
hay khôngy g
ReadTimeout
Lấy và thiết lập thời gian tạm ngưng cho việc
đọc dữ liệu
Lấ à thiết lậ thời i t h iệ
46
WriteTimeout
Lấy và thiết lập thời gian tạm ngưng cho việc
ghi dữ liệu
47. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Stream
• Bảng các phương thức của Stream:
Thuộc tính Ý nghĩa
Close
Đóng stream và giải phóng tài nguyên liên
quan đến stream
Flush Xóa các buffer đã cấp cho streamFlush Xóa các buffer đã cấp cho stream
Read
Thực hiện đọc dữ liệu tuần tự với số bytes
được chỉ định tại vị trí của con trỏ và cập nhật
lại vị trí mới của con trỏlại vị trí mới của con trỏ
ReadByte Đọc dữ liệu theo từng byte
47
Seek Thiết lập vị trí con trỏ trong stream
48. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Stream
• Bảng các phương thức của Stream:
Thuộc tính Ý nghĩa
SetLength Xác định lại kích thước của stream
Write
Ghi thông tin xuống stream và cập nhật lại vị trí
của con trỏ trong streamcủa con trỏ trong stream
WriteByte
Ghi thông tin xuống stream theo từng byte và
cập nhật lại vị trí của con trỏ trong stream
48
49. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý đọc ghi tập tin
• Stream
• Directory FileDirectory, File
• FileStream
• StreamReader, StreamWriter
• StringReader, StringWriterg g
• BinaryReader, BinaryWriter
• MemoryStream BufferedStream
49
• MemoryStream, BufferedStream
50. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
File class
• File cung cấp các chức năng cơ bản trong việc đọc và
ghi nội dung vào tập tin.
• Bảng các thuộc tính của File:
Thuộc tính Ý nghĩa
AppendAllText
Thêm một chuỗi văn bản vào tập tin, nếu tập
tin không tồn tại sẽ tạo tập tin mới
Mở tập tin (hoặc tạo mới nếu tập tin không
AppendText
Mở tập tin (hoặc tạo mới nếu tập tin không
tồn tại) và trả về một đối tượng StreamWriter
được dùng để ghi thêm nội dung văn bản vào
tập tin
50
Copy Sao chép tập tin thành một tập tin mới. Tập tin
mới phải chưa tồn tại trên đĩa
51. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
File class
• Bảng các thuộc tính của File:
Thuộc tính Ý nghĩaộ g
Create Tạo mới tập tin và trả về đối tượng FileStream
Tạo mới hoặc mở tập tin đã có và trả về một đối
S W i dù để hi ội d ăCreateText tượng StreamWriter dùng để ghi nội dung văn
bản vào tập tin.
Move Di chuyển tập tin đến một vị trí khácy ập ộ ị
Open Mở một tập tin đã tồn tại và trả về một đối tượng
FileStream
O R d Mở ột tậ ti đã tồ t i à t ả ề ột đối t
51
OpenRead Mở một tập tin đã tồn tại và trả về một đối tượng
FileStream ở chế độ chỉ cho phép đọc
52. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
File class
• Bảng các thuộc tính của File:
Thuộc tính Ý nghĩaộ g
OpenText
Mở một tập tin đã tồn tại và trả về một đối tượng
StreamReader.
Mở một tập tin đã tồn tại và trả về một đối tượng
OpenWrite
Mở một tập tin đã tồn tại và trả về một đối tượng
StreamWriter.
ReadAllBytes Mở tập tin và đọc nội dung vào trong một mảng
kiểu bytekiểu byte.
ReadAllLines Mở tập tin và đọc nội dung vào trong một mảng
kiểu chuỗi (mỗi phần tử là một dòng).
52
ReadAllText Mở tập tin và đọc toàn bộ nội dung vào trong
một biến kiểu chuỗi.
53. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
File class
• Bảng các thuộc tính của File:
Thuộc tính Ý nghĩaộ g
WriteAllBytes
Mở tập tin và ghi nội dung của một mảng kiểu
byte vào tập tin (ghi đè lên nội dung đã có của
tập tin).ập )
WriteAllLines
Mở tập tin và ghi nội dung của một mảng kiểu
chuỗi vào tập tin (ghi đè lên nội dung đã có của
tập tin).ập )
WriteAllText Mở tập tin và ghi nội dung của một chuỗi văn
bản vào tập tin (ghi đè lên nội dung đã có của
tập tin).
53
54. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
File class
• Bảng các giá trị của kiểu liệt kê FileAccess:
Thuộc tính Ý nghĩa
Read Mở tập tin ở chế độ chỉ cho phép đọc.
ếWrite Mở tập tin ở chế độ chỉ cho phép ghi
ReadWrite
Mở tập tin ở chế độ cho phép đọc và ghi.ập ộ p p ọ g
54
55. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
File class
• Bảng các giá trị của kiểu liệt kê FileMode:
Thuộc tính Ý nghĩa
Append
Mở tập tin và di chuyển con trỏ đến cuối tập tin. Chỉ sử
dụng khi chọn chế độ mở tập tin là FileAccess.Write.
Create
Tạo mới tập tin, nếu tập tin đã tồn tại sẽ ghi đè lên nội
Create
ạ ập , ập ạ g ộ
dung đã có.
CreateNew Tạo mới tập tin, nếu tập tin đã tồn tại sẽ phát sinh lỗi.
Mở tậ ti đã ó ế tậ ti khô tồ t i ẽ hát i h lỗiOpen Mở tập tin đã có, nếu tập tin không tồn tại sẽ phát sinh lỗi.
OpenOrCreate
Mở tập tin đã có, nếu tập tin không tồn tại sẽ tạo mới tập
tin.
55
Truncate Mở tập tin đã có và xóa toàn bộ nội dung đang có.
56. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Directory class
• Directory cung cấp các chức năng cơ bản trong việc xử
lý các thư mục.
• Bảng các thuộc tính của Directory:
Thuộc tính Ý nghĩa
CreateDirectory Tạo thư mục theo đường dẫn được cung cấp
Delete Xóa thư mụcDelete Xóa thư mục
Exists Kiểm tra thư mục có tồn tại hay không
GetCreationTime Trả về ngày giờ tạo thư mục
56
GetCreationTime Trả về ngày giờ tạo thư mục
57. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Directory class
• Bảng các thuộc tính của Directory:
Thuộc tính Ý nghĩa
GetCurrentDirectory
Trả về đối tượng DirectoryInfo là thư mục
hiện hành đang làm việc
G tDi t i
Trả về danh sách tên các thư mục con
GetDirectories
ụ
của thư mục hiện hành.
GetDirectoryRoot
Trả về thông tin thư mục gốc của thư
mục hiện hành.ụ ệ
GetFiles
Trả về tên của các tập tin trong thư mục
hiện hành
Trả về danh sách các tập tin và thư mục
57
GetFileSystemEntries
Trả về danh sách các tập tin và thư mục
con trong thư mục hiện hành
58. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Directory class
• Bảng các thuộc tính của Directory:
Thuộc tính Ý nghĩa
GetLastAccessTime
Trả về thời gian truy xuất cuối cùng của
thư mục.
G tL tW it Ti
Trả về thời gian cập nhật cuối cùng của
GetLastWriteTime
g ập ậ g
thư mục.
GetLogicalDrives
Trả về danh sách các ổ đĩa hiện có của hệ
thống.g
GetParent
Trả về thư mục cha của thư mục hiện
hành.
Di chuyển thư mục (kể cả nội dung bên
58
Move
Di chuyển thư mục (kể cả nội dung bên
trong thư mục) đến một vị trí khác
59. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Directory class
• Bảng các thuộc tính của Directory:
Thuộc tính Ý nghĩa
SetCreationTime Thiết lập thời gian tạo thư mục
S tC tDi t Thiết lập th m c hiện hànhSetCurrentDirectory Thiết lập thư mục hiện hành.
SetLastAccessTime
Thiết lập thời gian truy xuất cuối cùng
đến thư mụcụ
SetLastWriteTime
Thiết lập thời gian cập nhật cuối cùng
trên thư mục
59
60. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý đọc ghi tập tin
• Stream
• Directory FileDirectory, File
• FileStream
• StreamReader, StreamWriter
• StringReader, StringWriterg g
• BinaryReader, BinaryWriter
• MemoryStream BufferedStream
60
• MemoryStream, BufferedStream
61. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileStream class
• FileStream cung cấp các chức năng cơ bản trong việc
đọc và ghi nội dung vào tập tin.
ế• FileStream kế thừa từ lớp Stream nên FileStream có các
thuộc tính và phương thức tương tự như Stream.
61
62. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý đọc ghi tập tin
• Stream
• Directory FileDirectory, File
• FileStream
• StreamReader, StreamWriter
• StringReader, StringWriterg g
• BinaryReader, BinaryWriter
• MemoryStream BufferedStream
62
• MemoryStream, BufferedStream
63. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
StreamReader class
• StreamReader cung cấp các chức năng cơ bản để đọc
dữ liệu nhận được từ lớp Stream.
• Bảng các thuộc tính của StreamReader:
Thuộc tính Ý nghĩa
BaseStream Trả về đối tượng Stream đang đọc dữ liệu
CurrentEncoding
Trả về mã hóa hiện tại đang sử dụng trong
CurrentEncoding Stream
EndOfStream Kiểm tra đã đọc đến cuối Stream hay chưa
63
64. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
StreamReader class
• Bảng các phương thức của StreamReader:
Thuộc tính Ý nghĩa
Close Đóng stream đang đọc dữ liệu
Peek
Trả về ký tự kế tiếp trong stream mà không di
h ể h t ỏ dữ liệPeek chuyển cho trỏ dữ liệu
Read Đọc một nhóm ký tự kế tiếp trong Stream
R dBl k Đ ột khối ký t kế tiế t StReadBlock Đọc một khối ký tự kế tiếp trong Stream
ReadLine Đọc một dòng kế tiếp trong Stream
64
ReadToEnd Đọc tất cả các ký tự trong Stream
65. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
StreamReader class
• Ví dụ 1: đọc nội dung tập tin C:boot.ini
− Bước 1: mở tập tin để đọc
FileStream theFile = File.Open(@"C:boot.ini", FileMode.Open,
FileAccess.Read);
− Bước 2: đọc dữ liệu từ Stream
StreamReader rdr = new StreamReader(theFile);
Console.Write(rdr.ReadToEnd());
rdr Close()rdr.Close();
theFile.Close();
65
66. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
StreamReader class
• Ví dụ 2: đọc nội dung tập tin C:boot.ini sử dụng
phương thức ReadToEnd:
StreamReader rdr = File.OpenText(@"C:boot.ini");
Console.Write(rdr.ReadToEnd());
rdr Close();rdr.Close();
• Ví dụ 3: đọc nội dung tập tin C:boot.ini sử dụng
phương thức ReadAllText:
Console.WriteLine(File.ReadAllText(@"C:boot.ini"));
66
67. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
StreamReader class
• Ví dụ 4: đọc nội dung tập tin C:boot.ini sử dụng
phương thức ReadLine:
StreamReader rdr = File.OpenText(@"C:boot.ini");
// duyệt qua từng dòng dữ liệu
hil (! d E dOfSt )while (!rdr.EndOfStream)
{
string line = rdr ReadLine();string line = rdr.ReadLine();
Console.WriteLine(line);
}
67
}
rdr.Close();
68. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
StreamWriter class
• StreamWriter cung cấp các chức năng cơ bản để ghi dữ
liệu vào Stream.
• Bảng các thuộc tính của StreamWriter:
Thuộc tính Ý nghĩa
BaseStream Trả về đối tượng Stream đang đọc dữ liệu
Encoding
Trả về mã hóa hiện tại đang sử dụng trong
StEncoding Stream
NewLine Lấy và thiết lập chuỗi ký tự ngắt dòng
68
69. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
StreamWriter class
• Bảng các phương thức của StreamWriter:
Thuộc tính Ý nghĩa
Close Đóng stream đang ghi dữ liệu
Write Ghi dữ liệu và stream
WriteLine Ghi dữ liệu và stream và ngắt xuống dòng mới
69
70. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
StreamWriter class
• Ví dụ 1: ghi nội dung xuống tập tin C:test.txt
− Bước 1: mở tập tin để ghi
FileStream theFile = File.Create(@"c:test.txt");
− Bước 2: ghi dữ liệu vào Stream
StreamWriter writer = new StreamWriter(theFile);StreamWriter writer = new StreamWriter(theFile);
writer.WriteLine("Hello");
writer.Close();
theFile.Close();
70
71. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
StreamWriter class
• Ví dụ 2: ghi nội dung xuống tập tin C:test.txt sử dụng
phương thức CreateText của lớp File:
StreamWriter writer = File.CreateText(@"c:somefile.txt");
writer.WriteLine("Hello");
writer Close();writer.Close();
• Ví dụ 3: ghi nội dung xuống tập tin C:test.txt sử dụng
phương thức WriteAllText của lớp File:
File.WriteAllText(@"c:somefile.txt", "Hello");
71
72. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
StreamWriter class
• Các cách mở tập tin để ghi dữ liệu:
− Sử phương thức Open của lớp File
FileStream theFile = null;
theFile = File.Open(@"c:somefile.txt", FileMode.Open,
FileAccess.Write);
− Sử dụng phương thức OpenWrite của lớp File
FileStream theFile = null;
theFile = File.OpenWrite(@"c:somefile.txt");
− Sử dụng phương thức Open của lớp File với cơ chế OpenOrWrite
FileStream theFile = null;
72
FileStream theFile null;
theFile = File.Open(@"c:somefile.txt", FileMode.OpenOrCreate,
FileAccess.Write);
73. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý đọc ghi tập tin
• Stream
• Directory FileDirectory, File
• FileStream
• StreamReader, StreamWriter
• StringReader, StringWriterg g
• BinaryReader, BinaryWriter
• MemoryStream BufferedStream
73
• MemoryStream, BufferedStream
74. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
StringReader class
• Sử dụng StringReader để đọc dữ liệu theo từng dòng
string s = @"Hello all //dòng thứ 1
This is a multi-line //dòng thứ 2
text string"; //dòng thứ 3
St i R d d St i R d ( )StringReader rdr = new StringReader(s);
// kiểm tra nếu còn ký tự kế tiếp để đọc
while (rdr Peek() != -1)while (rdr.Peek() ! 1)
{
string line = rdr.ReadLine();
74
Console.WriteLine(line);
}
75. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
StringWriter class
• Sử dụng StringWriter để ghi dữ liệu theo từng dòng
string s = “”;
StringWriter writer = new StringWriter();
writer.WriteLine("Hello all");
it W it Li ("Thi i lti li ")writer.WriteLine("This is a multi-line");
writer.WriteLine("text string");
s = writer ToString();s writer.ToString();
Console.WriteLine(s);
75
76. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý đọc ghi tập tin
• Stream
• Directory FileDirectory, File
• FileStream
• StreamReader, StreamWriter
• StringReader, StringWriterg g
• BinaryReader, BinaryWriter
• MemoryStream BufferedStream
76
• MemoryStream, BufferedStream
77. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
BinaryWriter class
• Sử dụng BinaryWriter để ghi dữ liệu dạng nhị phân
FileStream newFile = File.Create(@"c:somefile.bin");
BinaryWriter writer = new BinaryWriter(newFile);
long number = 100;
b t [] b t b t [] { 10 20 50 100 }byte[] bytes = new byte[] { 10, 20, 50, 100 };
string s = “Trung tâm tin học";
writer Write(number);writer.Write(number);
writer.Write(bytes);
writer.Write(s);
77
writer.Close();
78. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
BinaryReader class
• Sử d Bi R d để đ dữ liệ d hị hâ• Sử dụng BinaryReader để đọc dữ liệu dạng nhị phân
FileStream newFile = File.Open(@"c:somefile.bin", FileMode.Open);
BinaryReader reader = new BinaryReader(newFile);
long number = reader.ReadInt64();
byte[] bytes = reader.ReadBytes(4);
string s = reader ReadString();string s = reader.ReadString();
reader.Close();
Console.WriteLine(number);
f h (b b i b )foreach (byte b in bytes)
{
Console.Write("[{0}]", b);
78
}
Console.WriteLine(s);
79. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý đọc ghi tập tin
• Stream
• Directory FileDirectory, File
• FileStream
• StreamReader, StreamWriter
• StringReader, StringWriterg g
• BinaryReader, BinaryWriter
• MemoryStream BufferedStream
79
• MemoryStream, BufferedStream
80. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
MemoryStream class
• MemoryStream cung cấp các chức năng cơ bản trong
việc tạo các stream trên bộ nhớ chính .
ế• MemoryStream kế thừa từ lớp Stream nên
MemoryStream có các thuộc tính và phương thức
tương tự như Stream. Ngoài ra còn có các thuộc tính vàg ự g ộ
phương thức sau:
− Capacity: lấy hoặc thiết lập kích thước (bytes) được phân bổ cho
stream.stream.
− GetBuffer: lấy về một mảng số nguyên byte không dấu dùng để tạo
stream.
T A hi t à bộ t à ả b t
80
− ToArray: ghi toàn bộ stream vào mảng bytes
− WriteTo: ghi nội dung của MemoryStream vào một Stream khác
81. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
MemoryStream class
• Ví dụ:
− Khai báo và khởi tạo MemoryStream:
MemoryStream memStrm = new MemoryStream();
− Ghi dữ liệu vào MemoryStream:Ghi dữ liệu vào MemoryStream:
StreamWriter writer = new StreamWriter(memStrm);
writer.WriteLine("Hello");
writer.WriteLine("Goodbye");
81
82. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
MemoryStream class
• Ví dụ:
− Ghi dữ liệu từ MemoryStream xuống tập tin:
writer.Flush();
FileStream theFile = File.Create(@"c:inmemory.txt");
memStrm WriteTo(theFile);memStrm.WriteTo(theFile);
writer.Close();
theFile.Close();
memStrm.Close();
82
83. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
BufferedStream class
• BufferedStream cung cấp các chức năng cơ bản trong
việc tạo các stream trên bộ nhớ đệm.
ế• BufferedStream kế thừa từ lớp Stream nên
BufferedStream có các thuộc tính và phương thức
tương tự như Stream.g ự
83
84. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
BufferedStream class
• Ví dụ: sử dụng BufferedStream để ghi dữ liệu
FileStream newFile = File.Create(@"c:test.txt");
BufferedStream buffered = new BufferedStream(newFile);
StreamWriter writer = new StreamWriter(buffered);
it W it Li ("S d t ")writer.WriteLine("Some data");
writer.Close();
84
85. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
85