Viết vào một tập tin văn bản trong csharp

c-sharp

(Phạm Quyết Nghị) #1

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ó.

Ví dụ 12.7: 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++)
				{
					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
0 1 2 3 4 5 6 7 8 9

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.

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.

Ghi chú: 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%C3%B4%20t%E1%BA%A3%20th%E1%BB%B1c%20hi%E1%BB%87n%20t%E1%BA%A1o%20t%E1%BA%ADp%20tin%20v%C3%A0%20%C4%91%C6%B0a%20d%E1%BB%AF%20li%E1%BB%87u%20v%C3%A0o

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.


89% Thành viên có cách giải cho một câu hỏi. Bạn thì sao?