 |
|
THAO TÁC TẬP TIN
TRONG VB.NET |
|
Một yêu cầu
đối với chương trình trò chơi
Line-NIIT là khả năng lưu (save) trạng thái
hiện hành.
Sau
đó,
người dùng có thể nạp (load) lại trạng thái này để
tiếp tục trò chơi. Tôi xin
trình bày các
thao tác với tập tin trong VB.NET để thực hiện yêu
cầu này.
|
|
Các
lớp biểu diễn
tập tin và thư mục |
|
Để làm việc
với tập tin và thư mục,
ta thường dùng
các lớp:
Directory, File, DirectoryInfo và FileInfo.
Hai lớp Directory và File chứa
nhiều
hàm thành viên static, như thế ta có thể gọi hàm
thông qua tên lớp, không cần tạo đối tượng. Hai lớp DirectoryInfo
và FileInfo thì chứa một số hàm static và
non-static, vì thế để
dùng
các hàm
của hai lớp này,
ta phải tạo ra các đối tượng.
Ví dụ,
để tạo
tập tin, ta
viết: |
|
Dim myFile as new FileInfo (”C:\Data\My
Doc\ReadMe.txt”)
myFile.CopyTo(”D:\Copies\ReadMe.txt”)
|
|
hoặc viết cách
khác nhanh hơn, không cần tạo
đối tượng:
|
|
File.Copy(”C:\Data\My Doc\ReadMe.txt”,
”D:\Copies\ReadMe.txt”); |
|
Để tạo
các đối tượng DirectoryInfo và FileInfo, ta gọi các hàm xây dựng lớp: |
|
Dim myFolder as new DirectoryInfo(”c:\myData”)
Dim test as new FileInfo(@”C:\Windows”)
Console.WriteLine(test.Exists.ToString())
|
|
Sau khi tạo đối tượng FileInfo,
ta có thể lấy thông tin về tập tin, thư mục thông
qua các phương thức
FullName, LastAccessTime,
LastWriteTime,...
hoặc có thể thực hiện các thao tác đối với tập tin
(di
chuyển, sao chép, xóa)
bằng các phương thức Create,
MoveTo, CopyTo, Delete.
Ví dụ:
|
|
‘ Hiển thị ngày giờ tạo tập tin, sửa
đổi
ngày giờ đó và hiển thị lần
nữa
Dim test as new FileInfo (”C:\My Documents\MyFile.txt”)
Console.WriteLine(test.Exists.ToString())
Console.WriteLine(test.CreationTime.ToString())
test.CreationTime = new DateTime(2006, 10, 7, 7, 30,
0)
Console.WriteLine(test.CreationTime.ToString())
|
|
Đọc và ghi
tập
tin
nhị
phân |
|
Ta
có thể dùng đối tượng FileStream để đọc dữ liệu từ
tập tin hay ghi dữ liệu lên tập tin. Khi
tạo
FileStream,
bạn
cần xác định các thông tin như sau: |
|
- Tập tin mà
bạn muốn thao tác.
-
Chế độ (mode) mở tập tin
(mở tập tin đã có hay tạo mới
một tập tin).
-
Chế độ truy xuất (access) tập tin (mở tập tin để đọc, đọc/ghi hay để ghi tiếp vào
cuối tập tin).
-
Mở tập tin
ở
chế độ Share hay không
(chia sẻ
với người khác hay khóa tập tin lại, không cho người khác truy cập).
|
|
Sau đó, ta có thể đọc và ghi lên FileStream bằng các hàm
Read, ReadByte,
Write, WriteByte.
Ví dụ: |
|
Dim fsTest As New FileStream("C:\Test.TXT",
FileMode.Create, FileAccess.ReadWrite,
FileShare.None)
‘đọc dữ liệu từ tập tin
Int n
= fsTest.ReadByte()
‘ghi dữ liệu lên tập tin
byte bytByte = 100;
fs.WriteByte(bytByte)
|
|
Đọc và ghi
tập
tin văn
bản |
|
Để đọc và ghi tập tin văn bản,
ta dùng các lớp StreamReader
và StreamWriter: |
|
‘đọc một dòng từ tập tin
Dim sr as new StreamReader (“C:\Test.txt”)
Dim str as String
Str= sr.ReadLine()
‘ghi một dòng lên tập tin
Dim sw as new StreamWriter (“C:\Test.txt”)
Dim str as String=”Hello World”
sw.WriteLine(str);
|
|
Bạn lưu
ý,
sau
thao tác với tập tin văn bản hoặc nhị phân,
ta phải đóng tập tin
đó
bằng phương thức Close nhằm giải phóng tất cả tài nguyên liên quan đến
tập tin. |
|
LÊ
TRỌNG NHÂN
(Giảng viên NIIT)
|
|
Đầu
trang |