CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 363

363

Chương 9: File, thư mục, và I/O

7.

7.

Đ c và ghi file văn b n

Đ c và ghi file văn b n

Bạn cần ghi dữ liệu vào một file văn bản theo kiểu mã hóa ASCII, Unicode, hay
UTF-8
.

Tạo một đối tượng

System.IO.FileStream

tham chiếu đến file. Để ghi file, hãy gói

FileStream

trong một

System.IO.StreamWriter

và sử dụng phương thức nạp

chồng

Write

. Để đọc file, hãy gói

FileStream

trong một

System.IO.StreamReader

và sử dụng phương thức

Read

hay

ReadLine

.

.NET cho phép bạn ghi hay đọc văn bản bằng lớp

StreamWriter

StreamReader

. Khi ghi dữ

liệu với

StreamWriter

, hãy sử dụng phương thức

StreamWriter.Write

. Phương thức này được

nạp chồng để hỗ trợ tất cả các kiểu dữ liệu thông thường trong C# .NET, bao gồm chuỗi, ký
tự, số nguyên, số thực dấu chấm động, số thập phân,... Tuy nhiên, phương thức

Write

luôn

chuyển dữ liệu thành văn bản. Nếu muốn chuyển văn bản này trở về kiểu ban đầu thì bạn nên
sử dụng

WriteLine

để bảo đảm mỗi giá trị được đặt trên một dòng riêng.

Có nhiều cách mô tả một chuỗi dưới dạng nhị phân, tùy thuộc vào cách mã hóa. Các kiểu mã
hóa thông thường là:

ASCII—sử dụng 7 bit để mã hóa mỗi ký tự trong chuỗi. Dữ liệu được mã hóa theo
ASCII không thể chứa các ký tự Unicode mở rộng. Khi sử dụng kiểu mã hóa ASCII
trong .NET, các bit được đệm thêm để mảng byte kết quả sẽ có 1 byte cho mỗi ký tự.

Full Unicode, hay UTF-16—sử dụng 16 bit để mã hóa mỗi ký tự trong chuỗi, nên mảng
byte kết quả sẽ có 2 byte cho mỗi ký tự.

UTF-7 Unicode—sử dụng 7 bit cho các ký tự ASCII bình thường và nhiều cặp 7 bit cho
các ký tự mở rộng. Kiểu mã hóa này chủ yếu dùng cho các giao thức 7 bit, chẳng hạn
mail.

UTF-8 Unicode—sử dụng 8 bit cho các ký tự ASCII bình thường và nhiều cặp 8 bit cho
các ký tự mở rộng. Mảng byte kết quả sẽ có 1 byte cho mỗi ký tự (giả sử không có ký
tự mở rộng).

.NET cung cấp một lớp cho mỗi kiểu mã hóa trong không gian tên

System.Text

. Khi sử dụng

StreamReader

StreamWriter

, bạn có thể chỉ định kiểu mã hóa hoặc sử dụng kiểu mặc định

UTF-8.
Khi đọc thông tin, sử dụng phương thức

Read

hay

ReadLine

của lớp

StreamReader

. Phương

thức

Read

đọc một ký tự, hay số ký tự do bạn chỉ định, và trả về một ký tự hay mảng ký tự.

Phương thức

ReadLine

trả về một chuỗi chứa toàn bộ nội dung một hàng.

Ứng dụng Console dưới đây minh họa việc ghi và đọc một file văn bản:

using System;

using System.IO;

using System.Text;

public class TextFileTest {

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.