Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Ngôn ngữ Csharp phần 10 potx
Nội dung xem thử
Mô tả chi tiết
Ngôn Ngữ Lập Trình C#
myFile.Close();
}
}
}
}
-----------------------------------------------------------------------------
Kết quả:
Dang doc tap tin....
<0> <1> <2> <3> <4> <5> <6> <7> <8> <9> <10> <11> <12> <13> <14> <15> <16>
<17>
<18> <19> <20> <21> <22> <23> <24> <25> <26> <27> <28> <29> <30> <31> <32>
<33>
<34> <35> <36> <37> <38> <39> <40> <41> <42> <43> <44> <45> <46> <47> <48>
<49>
<50> <51> <52> <53> <54> <55> <56> <57> <58> <59> <60> <61> <62> <63> <64>
<65>
<66> <67> <68> <69> <70> <71> <72> <73> <74> <75> <76> <77> <78> <79> <80>
<81>
<82> <83> <84> <85> <86> <87> <88> <89> <90> <91> <92> <93> <94> <95> <96>
<97>
<98> <99> ....Doc xong!
-----------------------------------------------------------------------------
Với ứng dụng này, chúng ta có thể đọc dữ liệu mà chúng ta đã viết trong ví dụ trước. Trong ví
dụ này chúng ta tạo ra luồng FileStream. Lúc này, mode thao tác của tập tin được sử dụng là
mode FileMode.Open. Sau đó chúng ta thực hiện việc gắn luồng này với luồng BinaryReader
trong dòng tiếp sau, luồng này sẽ giúp cho chúng ta đọc thông tin nhị phân:
FileStream myFile = new FileStream( args[0], FileMode.Open);
BinaryReader brFile = new BinaryReader(myFile);
Sau khi tạo ra luồng giúp cho việc đọc thông tin nhị phân từ tập tin, chương trình bắt đầu đọc
thông qua vòng lặp:
while (brFile.PeekChar() != -1)
{
Console.Write(“<{0}>”, brFile.ReadInt32());
}
Ở đây có một vài sự khác nhỏ, phương thức PeekChar của lớp BinaryReader được sử dụng.
Phương thức này sẽ lấy ký tự kế tiếp trong luồng. Nếu ký tự kế tiếp là cuối tập tin thì giá trị -1
được trả về. Ngược lại, thì ký tự kế tiếp được trả về Khi ký tự kế tiếp không phải ký tự cuối
tập tin thì lệnh bên trong vòng lặp sẽ đọc một số integer từ đối tượng BinaryStream brFile.
Các Lớp Cơ Sở .NET
361
Ngôn Ngữ Lập Trình C#
Phương thức được sử dụng để đọc một số nguyên là ReadInt32, chúng ta sử dụng kiểu tên
của Framework tốt hơn là kiểu do C# đưa ra. Nên nhớ rằng, tất cả những lớp từ Framework
điều được gọi bởi ngôn ngữ C# và chúng không phải là một bộ phận của ngôn ngữ C#.
Những lớp này còn được sử dụng tốt bởi những ngôn ngữ khác C#.
Ngoài ra lớp BinaryReader còn có những phương thức khác để thực hiện việc đọc các kiểu dữ
liệu khác nhau. Những phương thức đọc này được sử dụng cùng với cách mà ReadInt32 được
sử dụng trong chương trình. Bảng 12.4 sau liệt kê một số phương thức dùng để đọc các kiểu
dữ liệu.
Phương thức Ý nghĩa
Read Đọc những ký tự và chuyển vị trí đọc sang vị trí tiếp theo.
Phương thức này được nạp chồng gồm 3 phương thức.
ReadBoolean Đọc một giá trị boolean từ luồng hiện thời và chuyển vị trí đọc
sang một byte.
ReadByte Đọc byte kế tiếp từ luồng hiện thời và chuyển vị trí đọc sang 1
byte.
ReadBytes Đọc n byte từ luồng hiện thời sang một mảng byte và chuyển vị
trí đọc sang n byte.
ReadChar Đọc vị trí kế tiếp trong luồng hiện hành và chuyển vị trí đọc của
luồng theo sau sử dụng mã hóa và ký tự xác định được đọc từ
luồng.
ReadChars Đọc n ký tự từ luồng hiện hành vào một mảng n ký tự. Và
chuyển vị trí đọc của luồng theo sau sử dụng mã hóa và ký tự
xác định được đọc từ luồng.
ReadDecimal Đọc giá trị decimal và chuyển vị trí đọc sang 16 byte.
ReadDouble Đọc giá trị thực 8 byte và chuyển vị trí đọc sang 8 byte.
ReadInt16 Đọc giá trị 2 byte integer có dấu và chuyển vị trí đọc sang 2
byte.
ReadInt32 Đọc giá trị 4 byte integer có dấu và chuyển vị trí đọc sang 4
byte.
ReadInt64 Đọc giá trị 8 byte integer có dấu và chuyển vị trí đọc sang 8 byte
ReadSByte Đọc một signed byte từ luồng và chuyển vị trí đọc sang 1 byte.
ReadSingle Đọc giá trị thực 4 byte từ luồng và chuyển vị trí đọc sang 4 byte.
ReadString Đọc một chuỗi từ luồng. Chuỗi được cố định chiều dài trước.
Và được mã hóa mỗi lần như là số nguyên 7 bit.
ReadUInt16 Đọc giá trị 2-byte unsigned integer từ luồng. Sử dụng mã hóa
thứ tự nhỏ ở cuối (little endian encoding). Và chuyển vị trí hiện
hành sang 2 byte.
Các Lớp Cơ Sở .NET
362