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:
-
Streamlà 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 -
FileStreamlà mộtStreamđọc và ghi vào một tệp -
BinaryWritercho phép bạn viết các kiểu nguyên thủy ở dạng nhị phân vàoStream -
TextWriterlà một lớp cơ sở trừu tượng cho phép bạn viết văn bản -
StreamWriterlà mộtTextWritercho 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.