Một StreamWriter
là để viết văn bản tới một dòng suối. Nó luôn sử dụng một bảng mã và nếu bạn không chỉ định một mã khi bạn tạo nó, nó sẽ sử dụng UTF-8 (không có dấu thứ tự byte - BOM). Đầu ra bạn nhận được là bộ mã hóa UTF-8 đang cố gắng dịch văn bản (dưới dạng các ký tự riêng lẻ) sang UTF-8.
Nếu bạn muốn viết byte vào một luồng chỉ cần ghi trực tiếp vào luồng đó bằng cách sử dụng Write
phương thức chấp nhận một mảng byte. Nếu bạn muốn ghi vào một tệp, bạn có thể tạo một FileStream
và sử dụng nó làm luồng.
Cách đặt tên của các lớp trong System.IO
không gian tên đôi khi có thể gây nhầm lẫn:
-
Stream
là một lớp cơ sở trừu tượng cung cấp các phương thức để đọc và ghi các byte -
FileStream
là mộtStream
đọc và ghi vào một tệp -
BinaryWriter
cho phép bạn viết các kiểu nguyên thủy ở dạng nhị phân vàoStream
-
TextWriter
là một lớp cơ sở trừu tượng cho phép bạn viết văn bản -
StreamWriter
là mộtTextWriter
cho phép bạn viết văn bản vàoStream
Bạn có thể nên sử dụng FileStream
hoặc BinaryWriter
trên đầu FileStream
để giải quyết vấn đề của bạn.