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

Làm việc với tập tin dữ liệu

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 (154.17 KB, 16 trang )

Làm việc với tập tin dữ liệu

Làm việc với tập tin dữ liệu
Bởi:
Khuyet Danh

Luồng nhập xuất
Thuật ngữ tập tin thì nói chung là liên quan đến những thông tin lưu trữ bên trong ỗ đĩa
hoặc trong bộ nhớ. Khi làm việc với tập tin, chúng ta bao hàm với việc sử dụng một
luồng.
Nhiều người nhầm lẫn về sự khác nhau giữa tập tin và luồng. Một luồng đơn giản là
luồng của thông tin, chứa thông tin sẽ được chuyển qua, còn tập tin thì để lưu trữ thông
tin.
Một luồng được sử dụng để gởi và nhận thông tin từ bộ nhớ, từ mạng, web, từ một
chuỗi,...Một luồng còn được sử dụng để đi vào và ra với một tập tin dữ liệu.

Thứ tự của việc đọc một tập tin
Khi đọc hay viết một tập tin, cần thiết phải theo một trình tự xác định. Đầu tiên là phải
thực hiện công việc mở tập tin. Nếu như tạo mới tập tin, thì việc mở tập tin cùng lúc với
việc tạo ra tập tin đó. Khi một tập tin đã mở, cần thiết phải tạo cho nó một luồng để đặt
thông tin vào trong một tập tin hay là lấy thông tin ra từ tập tin. Khi tạo một luồng, cần
thiết phải chỉ ra thông tin trực tiếp sẽ được đi qua luồng. Sau khi tạo một luồng gắn với
một tập tin, thì lúc này chúng ta có thể thực hiện việc đọc ghi các dữ liệu trên tập tin.
Khi thực hiện việc đọc thông tin từ một tập tin, chúng ta cần thiết phải kiểm tra xem con
trỏ tập tin đã chỉ tới cuối tập tin chưa, tức là chúng ta đã đọc đến cuối tập tin hay chưa.
Khi hoàn thành việc đọc ghi thông tin trên tập tin thì tập tin cần phải được đóng lại.
Tóm lại các bước cơ bản để làm việc với một tậo tin là:






Bước 1: Mở hay tạo mới tập tin
Bước 2: Thiết lập một luồng ghi hay đọc từ tập tin
Bước 3: Đọc hay ghi dữ liệu lên tập tin
Bước 4: Đóng lập tin lại

1/16


Làm việc với tập tin dữ liệu

Các phương thức cho việc tạo và mở tập tin
Có nhiều kiểu luồng khác nhau. Chúng ta sẽ sử dụng những luồng khác nhau và những
phương thức khác nhau phụ thuộc vào kiểu dữ liệu bên trong của tập tin. Trong phần
này, việc đọc/ghi sẽ được thực hiện trên tập tin văn bản. Trong phần kế tiếp chúng ta
học cách đọc và viết thông tin trên tập tin nhị phân. Thông tin nhị phân bao hàm khả
năng mạnh lưu trữ giá trị số và bất cứ kiểu dữ liệu nào khác.
Để mở một tập tin trên đĩa cho việc đọc và viết tập tin văn bản, chúng ta cần phải sử
dụng cả hai lớp File và FileInfo. Một vài phương thức có thể sử dụng trong những lớp
này. Các phương thức này bao gồm:
AppendText: Mở một tập tin để và tập tin này có thể được thêm văn bản vào trong nó.
Tạo luồng StreamWriter sử dụng để thêm vào trong văn bản.
Create: Tạo mới một tập tin
CreateText: Tạo và mở một tập tin văn bản. Tạo ra một luồng StreamWriter.
Open: Mở một tập tin để đọc/viết. Mở một FileStream
OpenRead: Mở một tập tin để đọc
OpenText: Mở một tập tin văn bản để đọc. Tạo ra StreamReader để sử dụng.
OpenWrite: Mở một tập tin cho việc đọc và ghi.
Làm thế nào để chúng ta có thể biết được khi nào sử dụng lớp File chính xác hơn là sử
dụng

lớp FileInfo nếu chúng cùng chứa những phương thức tương tự với nhau. Thật ra hai
lớp này có nhiều sự khác biệt. Lớp File chứa tất cả các phương thức tĩnh, thêm vào đó
lớp File tự động kiểm tra permission trên một tập tin. Trong khi đó nếu muốn dùng lớp
FileInfo thì phải tạo thể hiện của lớp này. Nếu muốn mở một tập tin chỉ một lần thì tốt
nhất là sử dụng lớp File, còn nếu chúng ta tổ chức việc sử dụng tập tin nhiều lần bên
trong chương trình, tốt nhất là ta dùng lớp FileInfo. Hoặc nếu không chắc chắn cách sử
dụng thì chúng ta có thể sử dụng lớp FileInfo.

Viết vào một tập tin văn bản
Cách tốt nhất để nắm vững cách thức làm việc với tập tin là chúng ta sẽ bắt tay vào tìm
hiểu chương trình. Trong phần này chúng ta sẽ tìm hiểu một ví dụ minh họa việc tạo ra
một tập tin văn bản rồi sau đó viết lại thông tin vào nó.
2/16


Làm việc với tập tin dữ liệu

Viết dữ liệu vào tập tin văn bản.
----------------------------------------------------------------------------//writing.cs:: viết vào một tập tin văn bản
namespace Programming_CSharp
{
using System; using System.IO;
public class Tester
{
public static void Main(String[] args)
{
if (args.Length < 1)
{
Console.WriteLine("Phai nhap ten tap tin.");
}

else
{
StreamWriter myFile = File.CreateText( args[0]);
myFile.WriteLine("Khong co viec gi kho");
myFile.WriteLine("Chi so long khong ben");
myFile.WriteLine("Dao nui va lap bien");
myFile.WriteLine("Quyet chi at lam nen");
for(int i=0; i < 10; i++)

3/16


Làm việc với tập tin dữ liệu

{
myFile.Write("{0} ",i);
}
myFile.Close();
}
}
}
}
----------------------------------------------------------------------------Khi chạy chương trình trên chúng ta phải cung cấp tên của tập tin được tạo mới, nếu
không cung cấp thì chương trình sẽ không thực hiện việc tạo tập tin. Giả sử chúng ta có
cung cấp một tham số dòng lệnh cho chương trình thì một tập tin văn bản mới được tạo
ra có nội dung như sau:
Khong co viec gi kho
Chi so long khong ben
Dao nui va lap bien
Quyet chi at lam nen

0123456789
Trong chương trình trên không thực hiện việc xử lý ngoại lệ. Điều này dẫn đến chương
trình có thể phát sinh ra những ngoại lệ và những ngoại lệ này không được xử lý. Đây là
cách lập trình không tốt, nên yêu cầu người đọc nên thêm các xử lý ngoại lệ vào chương
trình trên, ngoại lệ này cũng tương tự như ngoại lệ trong ví dụ trước.
Như chúng ta thấy hàm Main có tham số và tham số này sẽ được nhận thông qua
dòng lệnh, trong các ví dụ trước, chương trình nhận tham số dòng lệnh thông qua lớp
Environment, còn ở đây ta khai báo tham số dòng lệnh trực tiếp cho chương trình. Dòng
lệnh đầu tiên của hàm Main() là kiểm tra số tham số nhập vào, nếu không có tham số
nào chương trình sẽ xuất ra thông báo là không có tên tập tin và kết thúc chương trình.

4/16


Làm việc với tập tin dữ liệu

Trong trường hợp cung cấp tham số đầy đủ chương trình sẽ thực hiện việc tạo mới tập
tin. Phương thức CreateText của lớp File được gọi để tạo ra một đối tượng StreamWriter
mới gọi là myFile. Tham số được truyền cho hàm là tên của tập tin sẽ được tạo. Kết quả
cuối cùng của dòng lệnh này là tạo ra một tập tin văn bản mới. Dữ liệu s4 được đưa vào
tập tin thông qua StreamWriter với thể của nó là myFile.
Nếu một tập tin hiện hữu với cùng tên như tập tin mà chúng ta tạo ra thì tập tin cũ sẽ
được viết chồng, tức là dữ liệu bên trong tập tin cũ sẽ bị xóa mất.
Hình sau minh họa việc thực hiện tạo tập tin và đưa dữ liệu vào

Mô tả thực hiện tạo tập tin và đưa dữ liệu vào

Khi một luồng được thiết lập và chỉ đến một tập tin, chúng ta có thể viết vào trong luồng
và nó sẽ được viết vào tập tin:
myFile.WriteLine("Khong co viec gi kho");

Dòng lệnh trên viết một chuỗi vào trong tập tin, việc viết này giống như là viết ra màn
hình console. Nhưng ở đây là được viết ra thiết bị khác, tức là ra tập tin. Sau khi thực
hiện toàn bộ công việc, cần thiết phải đóng luồng lại bằng cách gọi phương thức Close.

Đọc tập tin văn bản
Đọc dữ liệu từ tập tin văn bản cũng tương tự như việc viết thông tin vào nó. Ví dụ minh
họa tiếp sau đây thực hiện việc đọc tập tin mà chúng ta đã tạo ra từ chương trình minh
họa trước. Đây là chương trình đọc tập tin văn bản.
Đọc một tập tin văn bản.
----------------------------------------------------------------------------using System;

5/16


Làm việc với tập tin dữ liệu

using System.IO;
namespace Programming_CSharp
{
public class Tester
{
public static void Main(string[] args)
{
if ( args.Length < 1)
{
Console.WriteLine("Phai nhap ten tap tin");
}
else
{
string buffer;

StreamReader myFile = File.OpenText( args[0]);
while ( (buffer = myFile.ReadLine()) !=null)
{ Console.WriteLine(buffer);
}
myFile.Close();
}
}
}
6/16


Làm việc với tập tin dữ liệu

}
----------------------------------------------------------------------------Nếu chúng ta nhập đúng tên của tập tin vừa tạo trong ví dụ trước thì kết quả chương
trình thực hiện như sau:
----------------------------------------------------------------------------Kết quả:
Khong co viec gi kho
Chi so long khong ben
Dao nui va lap bien
Quyet chi at lam nen
0123456789
----------------------------------------------------------------------------Nếu chương trình được cung cấp đầy đủ tên tập tin thì nó sẽ bắt đầu thực hiện việc
đọc thông tin. Đầu tiên là khai báo một chuỗi dùng làm chỗ lưu thông tin đọc tử tập tin
ra. Để mở tập tin văn bản thì phương thức OpenText được gọi. Phương thức này được
truyền vào tên của tập tin văn bản cần mở. Một lần nữa một luồng tên myFile được tạo
ra gắn với tập tin đã cho, luồng này có kiểu là StreamReader. Phương thức ReadLine()
của myFile thực hiện việc đọc từng dòng trong tập tin và sau đó được xuất ra màn hình
console. Việc đọc này kết hợp với việc kiểm tra là đã đọc đến cuối tập tin chưa, nếu đọc
đến cuối tập tin, tức là hàm ReadLine()trả về chuỗi rỗng, lúc này chương trình sẽ kết

thúc việc đọc. Cuối cùng hàm Close được gọi để đóng tập tin lại, và chương trình chấm
dứt.
Trong chương trình này cũng không xử lý ngoại lệ, nếu tập tin không tồn tại chương
trình sẽ phát sinh ra ngoại lệ và ngoại lệ này không được xử lý. Đề nghị người đọc nên
đưa vào các đoạn xử lý ngoại lệ tương tự như ví dụ trên.

Viết thông tin nhị phân vào tập tin
Nếu chúng ta sử dụng một tập tin văn bản, thì khi chúng ta lưu dữ liệu kiểu số thì phải
thực hiện việc chuyển đổi sang dạng chuỗi ký tự để lưu vào trong tập tin văn bản và khi
lấy ra ta cũng lấy được giá trị chuỗi ký tự do đó ta phải chuyển sang dạng số. Đôi khi
chúng ta muốn có cách thức nào đó tốt hơn để lưu trực tiếp giá trị vào trong tập tin và
7/16


Làm việc với tập tin dữ liệu

sau đó đọc trực tiếp giá trị ra từ tập tin. Ví dụ khi viết một số lượng lớn các số integer
vào trong tập tin như là những số nguyên, thì khi đó ta có thể đọc các giá trị này ra như
là số integer. Trường hợp nếu chúng được viết vào tập tin với dạng văn bản, thì khi đọc
ra ta phải đọc ra văn bản và phải chuyển mỗi giá trị từ một chuỗi đến các số integer.
Tốt hơn việc phải thực hiện thêm các bước chuyển đổi, ta có thể gắn một kiểu luồng
nhị phân BinaryStream vào trong một tập tin,rồi sau đó đọc và ghi thông tin nhị phân từ
luồng này.
Tiếp theo ta sẽ xem một ví dụ minh họa việc đọc viết dữ liệu nhị phân vào một tập tin.
Mặc dù trong chương trình này thực hiện việc viết 100 giá trị integer vào trong một tập
tin nhưng có thể dễ dàng viết bất cứ kiểu dữ liệu nào khác.
Thông tin nhị phân là thông tin đã được định dạng kiểu lưu trữ dữ liệu.
Viết vào một tập tin nhị phân.
----------------------------------------------------------------------------//binarywriter.cs using System; using System.IO;
namespace Programming_CSharp

{
public class Tester
{
public static void Main(string[] args)
{
if ( args.Length < 1)
{
Console.WriteLine("Phai nhap ten tap tin!");
}
else
{

8/16


Làm việc với tập tin dữ liệu

FileStream
myFile
FileMode.CreateNew);

=

new

FileStream(

args[0],

BinaryWriter bwFile = new BinaryWriter(myFile);

for (int i=0; i < 100; i++)
{
bwFile.Write(i);
} bwFile.Close(); myFile.Close();
}
}
}
}
----------------------------------------------------------------------------Cũng tương tự như các ví dụ trên thì tên tập tin được đưa vào tham số dòng lệnh. Nếu
chương trình được nhập các tham số đầy đủ, chương trình sẽ thực hiện việc viết thông
tin nhị phân vào trong tập tin, và không có output ra màn hình console. Nếu chúng ta
mở tập tin và xem thì chỉ thấy các ký tự mở rộng đựơc thể hiện, sẽ không thấy những số
đọc được.
Trong chương trình này cũng chưa thực hiện việc xử lý các ngoại lệ. Nếu thực hiện việc
viết thông tin vào một tập tin đã hiện hữu, thì một ngoại lệ sẽ được phát sinh khi thực
hiện lệnh:
FileStream
myFile
FileMode.CreateNew);

=

new

FileStream(

args[0],

Trong chương trình này thực hiện việc tạo và mở tập tin khác với việc mở tập tin văn
bản. Lệnh trên tạo một đối tượng FileStream gọi là myFile. Luồng này được gắn với tập

tin thông qua bộ khởi dựng. Tham số đầu tiên của bộ khởi dựng là tên của tập tin mà
chúng ta tạo (args[0]), tham số thứ hai là mode mà chúng ta mở. Tham số này là giá
trị kiểu liệt kê FileMode, trong chương trình thì do chúng ta thực hiện việc tạo mới để
ghi nên sử dụng giá trị FileMode.CreateNew. Bảng sau liệt kê những mode giá trị khác
trong kiểu liệt kê FileMode.

9/16


Làm việc với tập tin dữ liệu

Giá trị của FileMode
Giá trị

Định nghĩa

Append

Mở một tập tin hiện hữu hoặc tạo một tập tin mới

Create

Tạo một tập tin mới. Nếu một tập tin đã hiện hữu, nó sẽ bị xóa và
một tập tin mới sẽ được tạo ra với cùng tên.

CreateNew

Tạo một tệp tin mới.Nếu mội tập tin đã tồn tại thì một ngoại lệ sẽ
được phát sinh.


Open

Mở tập tin hiện hữu.

OpenOrCreate Mở tập tin hay tạo tập tin mới nếu tập tin chưa tồn tại
Truncate

Mở một tập tin hiện hữu và xóa nội dung của nó.

Sau khi tạo ra FileStream, chúng ta cần thiết phải thiết lập để nó làm việc với dữ liệu nhị
phân. Dòng lệnh tiếp theo:
BinaryWriter bwFile = new BinaryWriter(myFile);
Dòng này thiết lập một kiểu viết dữ liệu nhị phân vào trong luồng bằng cách khai báo
kiểu BinaryWrite. Đối tượng thể hiện của BinaryWrite là bwFile được tạo ra. myFile
được truyền vào bộ khởi dựng BinaryWrite, nó sẽ gắn bwFile với myFile.
for (int i=0; i < 100; i++)
{
bwFile.Write(i);
}
Vòng lặp này thực hiện việc viết trực tiếp giá trị integer vào trong BinaryWrite bwFile
bằng cách sử dụng phương thức Write. Dữ liệu được viết có thể là kiểu dữ liệu đặc biệt
khác. Trong chương trình này thì sử dụng giá trị integer. Khi thực hiện xong các công
việc viết vào tập tin, chúng ta cần thiết phải đóng luồng mà chúng tả đã mở.

Đọc thông tin nhị phân từ tập tin
Trong phần trước chúng ta đã thực hiện việc viết thông tin nhị phân vào trong tập tin, và
bây giờ chúng ta mong muốn được đọc các thông tin đã ghi vào trong tập tin. Việc đọc
thông tin cũng khá đơn giản như là việc viết vào. Chương trình sau minh họa cho công
việc này.


10/16


Làm việc với tập tin dữ liệu

Đọc thông tin nhị phân.
----------------------------------------------------------------------------// BinaryRead.cs: Doc thong tin tu file nhi phan
namespace Programming_CSharp
{
using System;
using System.IO;
public class Tester
{
public static void Main( String[] args)
{
if ( args.Length < 1)
{
Console.WriteLine("Phai nhap ten tap tin");
}
else
{
FileStream
myFile
FileMode.Open);

=

new

FileStream(


args[0],

BinaryReader brFile = new BinaryReader(myFile);
// đọc dữ liệu
Console.WriteLine("Dang doc tap tin....");

11/16


Làm việc với tập tin dữ liệu

while (brFile.PeekChar() != -1)
{
Console.Write("<{0}>", brFile.ReadInt32());
}
Console.WriteLine("....Doc xong");
brFile.Close();
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><
<51><52><53><54><55><56><57><58><59><60><61><62><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:

12/16


Làm việc với tập tin dữ liệu

FileStream
myFile
FileMode.Open);

=

new

FileStream(

args[0],

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
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í đọcsang
một byte.

ReadByte

Đọc byte kế tiếp từ luồng hiện thời và chuyển vị trí đọc sang 1byte.

13/16



Làm việc với tập tin dữ liệu

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ệnhành sang 2
byte.

ReadUInt64

Đọc 8-byte unsigned integer từ luống hiện hành và chuyển sang8 byte.


Câu hỏi và trả lời
Các ngôn ngữ được hỗ trợ bởi .NET phải tuân thủ theo quy tắc nào không?
Như đã trình bày bên trên, các ngôn ngữ .NET phải tuân thủ theo quy định chung để có
thể hoạt động trên nền của .NET. Những quy định này được gọi là Common Language
Specification (CLS). CLS đưa ra những kiểu dữ liệu chung và các tập luật để thao tác
trên kiểu dữ liệu này, CLS cho phép tạo ra một môi trường thực thi chung mà không
cần quan tâm đến từng ngôn ngữ được sử dụng. Lợi ích của CLS là mã nguồn được viết
thống nhất để quản lý, mã nguồn được viết trong ngôn ngữ này có thể được sử dụng bởi
một ngôn ngữ khác.
Nếu muốn tìm hiểu về các lớp được cung cấp bởi .NET một cách chi tiết thì phải tìm ở
đâu?

14/16


Làm việc với tập tin dữ liệu

Để tìm hiểu chi tiết các lớp của .NET thì chúng ta có thể tìm trong thư viện trực tuyến
của Microsoft có tên là MSDN Online, thư viện này chứa tất cả các thông tin liên quan
đến .NET Framework mà người học cần quan tâm. Thư viện này thường xuyên được
cập nhật và chứa những thông tin mới nhất về các phiên bản của .NET.
Câu hỏi thêm
Để truy xuất thời gian của đồng hồ hệ thống chúng ta phải dùng lớp nào? Câuhỏi 2:
Thông tin về máy tính có thể được truy xuất thông qua lớp nào?
Tham số dòng lệnh là gì? Làm thế nào để lấy được tham số dòng lệnh?
Lớp thao tác các phép toán học cơ bản? Chúng ta có thể tạo thể hiện của lớp này hay
không?
Lớp thao tác tập tin File chứa trong namespace nào? Các thao tác chính được thực hiện
trên tập tin?
Lớp nào cung cấp các thông tin về tập tin? Các phương thức chính của lớp này? Câuhỏi

7: Luồng là gì? Phân biệt giữa tập tin và luồng?
Có mấy cách thức tạo tập tin? Cho biết thứ tự đọc của một tập tin?
Sự khác nhau giữa lớp File và FileInfo? Khi nào thì sử dụng lớp File tốt hơn là sử dụng
FileInfo?
Khi tạo một tập tin mới trùng với tên của một tập tin cũ trong cùng một vị trí thư mục
thì chuyện gì xảy ra?
Nếu muốn viết dữ liệu đã định dạng như là kiểu số thì dùng cách viết vào tập tin dạng
nào?
Bài tập
Viết một chương trình minh họa việc truy xuất thông tin hệ thống của máy tính đang sử
dụng. Thông tin này bao gồm: tên máy tính, hệ điều hành, bộ nhớ, đĩa cứng...
Viết chương trình minh họa một máy tính cá nhân cho phép thực hiện các phép toán cơ
bản. Chương trình hiện ra một menu các lệnh và mỗi lệnh được gán cho một số: như
công thì số 1, trừ số 2, nhân 3,... Cho phép người dùng chọn một lệnh thông qua nhập
vào số tương ứng. Sau đó cho người dùng nhập vào từng toán hạng rồi thực hiện phép
toán và cuối cùng in kết quả ra màn hình.

15/16


Làm việc với tập tin dữ liệu

Viết chương trình cho phép xem thông tin về một tập tin. Chương trình cho người dùng
nhập vào tên tập tin rồi sau đó lần lượt hiển thị các thông tin như: thuộc tính tập tin,
ngày giờ tạo lập, kích thước tập tin...
Viết chương trình xem tập tin văn bản giống như lệnh type của DOS. Chương trình cho
phép người dùng nhập tên tập tin thông qua tham số dòng lệnh. Nếu người dùng không
nhập qua tham số dòng lệnh thì yêu cầu nhập vào.
Viết chương trình cho phép người dùng nhập vào một mảng số nguyên. Sau đó sắp xếp
mảng này theo thứ tự tăng dần rồi lưu mảng vào một tập tin trên đĩa với dạng nhị phân.


16/16



×