Tải bản đầy đủ (.pdf) (25 trang)

Bài giảng Ngôn ngữ lập trình nâng cao: Bài 4.1 - Nguyễn Xuân Hùng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (607.66 KB, 25 trang )

Object-Oriented Programming Using C#

NGƠN NGỮ LẬP TRÌNH NÂNG CAO

Ver. 1.0

Slide 1 of 25


Object-Oriented Programming Using C#
Mục tiêu
Trong phần này, chúng ta sẽ học:
Thực thi đọc và ghi tập tin
Thực thi đọc và ghi tập tin nhị phân
Thực thi tập tin hệ thống Windows
Miêu tả về ngoại lệ

Ver. 1.0

Slide 2 of 25


Object-Oriented Programming Using C#
Thực thi đọc và ghi tập tin
Lớp Stream được sử dụng để đọc và ghi dữ liệu từ các tập
tin.
Nó là lớp abstract, hỗ trợ việc đọc ghi các byte vào nó.
Nếu dữ liệu của tập tin chỉ có ký tự (text), chúng ta có thể
sử dụng lớp StreamReader và lớp StreamWriter để thực
thi hoạt động đọc và ghi.


Ver. 1.0

Slide 3 of 25


Object-Oriented Programming Using C#
Lớp StreamReader
Lớp StreamReader được kế thừa từ lớp trừu tượng
TextReader.
Lớp TextReader đại diện cho việc đọc, có thể đọc một loạt
các ký tự.

Ver. 1.0

Slide 4 of 25


Object-Oriented Programming Using C#
Lớp StreamReader (tiếp)
Bảng sau miêu tả một vài phương thức hay sử dụng của
lớp StreamReader.

Ver. 1.0

Phương thức

Miêu tả

Close


Đóng đối tượng của lớp StreamReader và luồng cơ sở và thu hồi tài
nguyên hệ thống liên quan tới việc đọc.

Peek

Trả về ký tự sẵn sàng tiếp theo nhưng không dùng di chuyển biến đọc

Read

Đọc ký tự tiếp theo hoặc tập ký tự tiếp theo từ luồng stream

ReadLine

Đọc dòng ký tự từ luồng stream hiện tại và trả về dữ liệu như một chuỗi

Seek

Cho phép vị trí đọc/ghi có thể di chuyển tới bất kỳ vị trí nào trong tập tin

Slide 5 of 25


Object-Oriented Programming Using C#
Lớp StreamWriter
Lớp StreamWriter được kế thừa từ lớp trừ tượng
TextWriter.
Lớp TextWriter đại diện cho việc ghi, có thể ghi một loạt
các ký tự.
Bảng sau miêu tả một số phương thức thường dùng trong
lớp StreamWriter.


Ver. 1.0

Phương thức

Miêu tả

Close

Đóng đối tượng StreamWriter hiện tại và luồng chạy ngầm

Flush

Xóa tồn bộ bộ đệm cho việc ghi hiện tại

Write

Thực thi việc ghi vào luồng

WriteLine

Thực thi việc ghi vào luồng và đưa con trỏ xuống dòng tiếp theo

Slide 6 of 25


Object-Oriented Programming Using C#
Thực thi việc đọc và ghi trong tập tin nhị phân
Trong C#, chúng ta có thể hiển thị trực tiếp nội dung của tập
tin lên màn hình.

Đọc và ghi nhị phân có nghĩa là một số được ghi như một
số thực (float) tốn 4 byte trong không gian bộ nhớ.
Lớp BinaryReader và BinaryWriter được sử dụng để
đọc và ghi dữ liệu nhị phân vào tập tin.

Ver. 1.0

Slide 7 of 25


Object-Oriented Programming Using C#
Lớp BinaryReader
Lớp BinaryReader được sử dụng để đọc dữ liệu nhị phân
từ tập tin.
Bảng sau miêu tả một số phương thức thường sử dụng với
lớp BinaryReader.

Ver. 1.0

Phương thức

Miêu tả

Close

Đóng đối tượng đọc hiện tại và các luồng chạy ngầm

Read

Đọc ký tự từ luồng (stream) và đưa ra vị trí hiện tại của luồng


Slide 8 of 25


Object-Oriented Programming Using C#
Lớp BinaryWriter
Lớp BinaryWriter được sử dụng để ghi dữ liệu vào
luồng.
Bảng sau miêu tả một số phương thức thường sử dụng
trong lớp BinaryWriter.

Ver. 1.0

Phương thức

Miêu tả

Close

Đóng đối tượng BinaryWriter hiện tại và các luồng chạy ngầm

Seek

Thiết lập vị trí trong luồng hiện tại

Write

Ghi giá trị vào luồng hiện tại

Flush


Xóa tồn bộ dữ liệu trong bộ nhớ đệm

Slide 9 of 25


Object-Oriented Programming Using C#
Thực thi hệ thống tập tin Windows
Khả năng tìm kiếm và định vị tập tin và thư mục cho một thư
mục cụ thể là cần thiết cho cơng việc lập trình.
Sử dụng các lớp như là DirectoryInfo và FileInfo là
một cách hiệu quả để tập hợp thông tin yêu cầu về tập tin
và thư mục trong một vị trí cụ thể.

Ver. 1.0

Slide 10 of 25


Object-Oriented Programming Using C#
Lớp DirectoryInfo
Lớp DirectoryInfo được dẫn xuất từ lớp FileSystemInfo.
Bảng sau miêu tả các thuộc tính thường sử dụng của lớp
DirectoryInfo.

Ver. 1.0

Thuộc tính

Miêu tả


Attributes

Thiết lập và thay đổi các thuộc tính liên quan tới tập tin hiện thời. Thuộc tính này kế
thừa từ FileSystemInfo.

CreationTime

Thiết lập và thay đổi thời gian tạo tập tin hiện tại. Thuộc tính này kế thừa từ
SystemInfo.

Exists

Trả về giá trị Boolean trong đó thư mục có tồn tại hay khơng.

Extension

Trả về một chuỗi chứa phần mở rộng. Thuộc tính này kế thừa từ
FileSystemInfo.

FullName

Trả về một chuỗi chứa toàn bộ đường dẫn của thư mục. Thuộc tính này kế thừa từ
FileSystemInfo.

LastAccessTime

Trả về lần cuối cùng truy cập vào thư mục. Thuộc tính này kế thừa từ
FileSystemInfo.


Name

Trả về chuỗi tên của tập tin đưa ra.

Slide 11 of 25


Object-Oriented Programming Using C#
Lớp DirectoryInfo
Bảng sau miêu tả một vài phương thức thường sử dụng
trong lớp DirectoryInfo.

Ver. 1.0

Phương thức

Miêu tả

Create

Tạo một thư mục.

CreateSubdirectory

Tạo một thư mục con.

Delete

Xóa một thư mục.


GetDirectories

Trả về thư mục trong thư mục hiện tại sau khi so sánh điều kiện. Nó cũng
cho phép chúng ta tìm kiếm thư mục con trong thư mục hiện tại.

GetFiles

Trả về tập tin trong thư mục hiện tại.

Slide 12 of 25


Object-Oriented Programming Using C#
Lớp FileInfo
Lớp FileInfo được dẫn xuất từ lớp FileSystemInfo.
Bảng sau miêu tả một vài thuộc tính thường sử dụng trong
lớp FileInfo.

Ver. 1.0

Thuộc tính

Miêu tả

Attributes

Thiết lập và thay đổi thuộc tính liên quan tới tập tin hiện tại. Thuộc tính này kế thừa từ
FileSystemInfo.

CreationTime


Thiết lập và thay đổi thời gian tạo tập tin hiện tại. Thuộc tính này kế thừa từ
FileSystemInfo.

Directory

Trả về thư mục chứa tập tin.

Exists

Trả về giá trị Boolean chỉ ra tập tin có tồn tại hay không?

Extension

Trả về chuỗi chứa phần mở rộng của tập tin. Thuộc tính này kế thừa từ
FileSystemInfo.

FullName

Trả về một chuỗi chứa tồn bộ đường dẫn của tập tin. Thuộc tính này kế thừa từ
FileSystemInfo.

LastAccessTime

Trả về lần truy cập cuối cùng của tập tin. Thuộc tính này kế thừa từ FileSystemInfo.

LastWriteTime

Trả về lầm có hoạt động ghi cuối cùng vào tập tin. Thuộc tính này kế thừa từ
FileSystemInfo.


Length

Trả về kích thước của tập tin

Name

Trả về chuỗi chứa tên của tập tin

Slide 13 of 25


Object-Oriented Programming Using C#
Lớp FileInfo (tiếp)
Bảng sau miêu tả một vài phương thức thường sử dụng
trong lớp FileInfo.

Ver. 1.0

Phương thức

Miêu tả

Create

Tạo một tập tin

AppendText

Đính nội dung vào tập tin của đối tượng FileInfo.


Delete

Xóa tập tin

Open

Mở tập tin

OpenRead

Mở tập tin với hình thức chỉ đọc

Slide 14 of 25


Object-Oriented Programming Using C#
Miêu tả ngoại lệ (Exception)
Một ngoại lệ là một tình huống lỗi khơng mong muốn xảy ra
trong quá trình chạy chương trình.
Khi một ngoại lệ xảy ra trong ứng dụng, hệ thống đưa ra
một lỗi.
Lỗi được xử lý thơng qua q trình xử lý ngoại lệ.

Ver. 1.0

Slide 15 of 25


Object-Oriented Programming Using C#

Các kiểu lỗi
Có ba kiểu lỗi có thể xảy ra trong ứng dụng:
Lỗi cú pháp: Xảy ra khi câu lệnh xây dựng khơng chính xác, từ
khóa khơng đúng, thiếu dấu chấm câu.
Lỗi thời gian chạy: xảy ra khi một ứng dụng cố gắng thực thi
một hoạt động không được phép trong khi chạy.
Lỗi logic: xảy ra khi một ứng dụng dịch và chạy chính xác
nhưng khơng đưa ra kết quả mong muốn.

Chúng ta tìm hiểu chi tiết về các kiểu lỗi.

Ver. 1.0

Slide 16 of 25


Object-Oriented Programming Using C#
Các lỗi cú pháp
class Errors
{
Console.WriteLine(“Enjoy Errors”)
}

Thiết dấu chấm câu trong câu lệnh Console.WriteLine

Ver. 1.0

Slide 17 of 25



Object-Oriented Programming Using C#
Lỗi thời gian chạy
class Errors
{
int Num1=0;
int Num2=20;
int Num3;
Num3=Num2/Num1;
Console.WriteLine(“The Result is {0}”,
Num3);
}

Phép chia cho 0

Ver. 1.0

Slide 18 of 25


Object-Oriented Programming Using C#
Lỗi logic
class Errors
{

int Num1=10;
int Num2=2;
int Num3;
Num3=Num2/Num1;
Console.WriteLine(“The Result is
{0}”, Num3);

}

Kết quả mong muốn = 5
Kết quả đầu ra = 0.2

Ver. 1.0

Slide 19 of 25


Object-Oriented Programming Using C#
Lớp Exception
Có nhiều lớp ngoại lệ được dẫn xuất trực tiếp hoặc gián tiếp
từ lớp System.Exception. Một vài lớp đó là:
Lớp System.ApplicationException
Lớp System.SystemException

Ver. 1.0

Slide 20 of 25


Object-Oriented Programming Using C#
Lớp Exception (tiếp)
Kiến trúc của lớp ngoại lệ (exception) được mô tả như sau.

System.Exception

System.ApplicationException


System.SystemException

Ver. 1.0

Slide 21 of 25


Object-Oriented Programming Using C#
Lớp Exception (tiếp)
System.SystemException hoạt động như một lớp cơ sở
cho tất cả ngoại lệ hệ thống được xác định trước. Bảng sau
miêu tả một vài lớp dẫn xuất từ lớp
System.SystemException.

Ver. 1.0

Lớp Exception

Miêu tả

System.IO.IOException

Xử lý lỗi I/O

System.IndexOutOfRangeException

Xử lý lỗi sinh ra khi một phương thức liên quan tới các thành
phần của mảng mà vượt quá phạm vi của nó

System.NullReferenceException


Xử lý lỗi sinh ra trong q trình xứ lý đối tượng rỗng (null)

System.DivideByZeroException

Xử lý lỗi sinh ra trong quá trình xử lý phép chia cho 0

System.InvalidCastException

Xử lý lỗi sinh ra trong quá trình ép kiểu

System.OutOfMemoryException

Xử lý khởi tạo bộ nhớ cho ứng dụng bị lỗi

Slide 22 of 25


Object-Oriented Programming Using C#
Tổng kết
Trong mục này, chúng ta đã học:
Lớp Stream được sử dụng để đọc và ghi dữ liệu vào tập tin .
Nó là một lớp trừu tượng hỗ trợ việc đọc và ghi byte.
Lớp StreamReader kế thừa từ lớp trừu tượng TextReader.
Lớp TextReader đại diện cho việc đọc và có thể đọc một loạt
ký tự.
Lớp StreamWriter kế thừa từ lớp trừu tượng TextWriter.
Lớp TextWriter trình bày việc ghi và có thể ghi một loạt ký
tự.
Lớp BinaryReader cho phép đọc dữ liệu nhị phân vào tập

tin.
Lớp BinaryWriter cho phép ghi dữ liệu nhị phân vào luồng.

Ver. 1.0

Slide 23 of 25


Object-Oriented Programming Using C#
Tổng kết (tiếp)
Lớp DirectoryInfo được dẫn xuất từ lớp
FileSystemInfo và nó làm việc trên một thư mục chỉ định
và chỉ ra đường dẫn đầy đủ của thư mục hiện tại.
Lớp FileInfo được dẫn xuất từ lớp FileSystemInfo và nó
làm việc trên thư mục chỉ định và hiển thị danh sách của tất cả
tập tin.
Một ngoại lệ là một tình huống khơng đúng xảy ra trong khi
thực thi chương trình
Lỗi cú pháp xảy ra khi trình biên dịch khơng thể dịch mã. Điều
này có thể xảy ra khi câu lệnh xây dựng khơng chính xác, từ
khóa lỗi hoặc dấu câu không đúng.
Lỗi thời gian chay xảy ra khi một ứng dụng cố gắng thực thi
một hoạt động không được phép.

Ver. 1.0

Slide 24 of 25


Object-Oriented Programming Using C#

Tổng kết (tiếp)
Một lỗi logic xảy ra khi một ứng dụng dịch và chạy chính xác
nhưng khơng đưa ra kết quả mong muốn.
Các điều kiện ngoại lệ xuất hiện khi một hoạt động khơng thể
hịa thành bình thường trong quá trình xử lý câu lệnh C# và
các biểu thức.

Ver. 1.0

Slide 25 of 25


×