TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
1
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ậptin
Xử
lý
đọc
ghi
tập
tin
2
-8 tiết -
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 khi
trong
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 (đĩ )Khikếtthú h tì hthìdữ
ngo
ài
(đĩ
a
)
.
Khi
kết
thú
c c
h
ương
t
r
ì
n
h
thì
dữ
liệu vẫn còn do đó chúng ta có thể sử dụng
nhiềulần.
3
nhiều
lần.
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
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 đượclưutrữ dướidạng mã Ascii
nà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 đượckết thúc bằng ký tự xuống
cá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ự.
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ấutrúc vàđượclưutrữ trên đĩadưới
char
,
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ưn
g
n
g
ười dùn
g
khôn
g
q
uan tâm đến n
ộ
i
ệ gg ggq ộ
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
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
•
Ctỏ tậ ti
•
C
on
t
r
ỏ
tậ
p
ti
n:
− Khi mộttậptinđượcmở ra để làm việc, tạimỗithờ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ảyra.Người ta hình dung có mộtcontrỏ
đang chỉđếnvị trí đóvàđặt tên nó là con trỏ tậptin.
−
Sau khi đọc/ghi xong dữ liệucontrỏ sẽ chuyểndị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
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
ti
n:
− Là một biến thuộc kiểu dữ liệu tập tin dùng để đại diện
cho mộttậptin.Dữ liệuchứa trong mộttậptinđượctruy
cho
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
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ậptin
Xử
lý
đọc
ghi
tập
tin
9
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
•
FileInfo
FileInfo
• DirectoryInfo
• DriveInfo
• Path
• FileSystemWatcher
10
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à utility
class:
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 à
c
l
ass cơ s
ở
Fil
e
S
ystem
I
n
f
o.
Cá
c c
l
ass 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ậptin Đó 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.
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ẫnxuấttừ
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ếtbị)
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ặcphươ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 li tilit b ồ ál
Fil
12
(
pa
th
s
)
.
Cá
c c
l
ass
l
oạ
i
u
tilit
y
b
ao g
ồ
m c
á
c c
l
ass :
Fil
e,
Directory, và Path
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
g
iá tr
ị
về thời
g
ian t
ạ
o l
ập
của t
ập
tin
CreationTime
ặ yg ị 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
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ộctính
Ý nghĩa
Thuộ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
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ĩa
Phươ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
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
•
FileInfo
FileInfo
• DirectoryInfo
• DriveInfo
• Path
• FileSystemWatcher
16
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
th
u
ộ
c
tí
n
h
c
hí
n
h
c
ủ
a
Fil
e
I
n
f
o
Thuộc tính Ý nghĩa
T ả ề th hứ tậ ti hiệ hà h đ
Directory
T
r
ả
v
ề
th
ư mục c
hứ
a
tậ
p
ti
n
hiệ
n
hà
n
h
đ
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
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 p
h
ương
thứ
c c
hí
n
h
c
ủ
a
Fil
e
I
n
f
o
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ậptinđếnthư mụckhác
CopyTo
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 information
current
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
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ảimãtậptinđã đượ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ểntậptinđếnthư mục khác
MoveTo
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ậptinở 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
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Ví dụ
•
Kiểmtratậptincótồntại hay không:
•
Kiểm
tra
tập
tin
có
tồn
tại
hay
không:
• Sao ché
p
t
ập
tin
p ập
20
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
•
FileInfo
FileInfo
• DirectoryInfo
• DriveInfo
• Path
• FileSystemWatcher
21
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 tron
g
chuỗi đườn
g
dẫn của thư
Root
ụ g g g
mục hiện hành
22
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 p
h
ương
thứ
c c
hí
n
h
c
ủ
a
Di
rec
t
ory
I
n
f
o
Create
Tạo thư mục theo thông tin được mô tả trong
DirectoryInfo.
CreateSubdirectory
Tạothư mụcconcủathư mụchiệnhành
CreateSubdirectory
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à h
hà
n
h
GetFiles
Trả về một mảng đối tượng kiểu FileInfo gồm
các t
ập
tin tron
g
thư m
ụ
c hi
ệ
n hành
23
ậpgụ ệ
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 p
h
ương
thứ
c c
hí
n
h
c
ủ
a
Di
rec
t
ory
I
n
f
o
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
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