หากต้องการขยายคำตอบอื่น ๆ เล็กน้อยที่นี่และช่วยอธิบายโค้ดตัวอย่างจำนวนมากที่คุณจะเห็นเป็นจุด ๆ ส่วนใหญ่คุณไม่ได้อ่านและเขียนไปยังสตรีมโดยตรง สตรีมเป็นวิธีการถ่ายโอนข้อมูลระดับต่ำ
คุณจะสังเกตเห็นว่าฟังก์ชันสำหรับการอ่านและการเขียนเป็นแบบไบต์ทั้งหมดเช่น WriteByte () ไม่มีฟังก์ชันสำหรับจัดการกับจำนวนเต็มสตริงและอื่น ๆ สิ่งนี้ทำให้สตรีมมีจุดประสงค์ทั่วไปมาก แต่ใช้งานง่ายน้อยกว่าในกรณีที่คุณต้องการถ่ายโอนข้อความ
อย่างไรก็ตาม. NET มีคลาสที่แปลงระหว่างประเภทเนทีฟและอินเทอร์เฟซสตรีมระดับต่ำและโอนข้อมูลไปยังหรือจากสตรีมให้คุณ คลาสที่โดดเด่นบางอย่าง ได้แก่ :
StreamWriter // Badly named. Should be TextWriter.
StreamReader // Badly named. Should be TextReader.
BinaryWriter
BinaryReader
ในการใช้สิ่งเหล่านี้อันดับแรกคุณได้รับสตรีมของคุณจากนั้นสร้างหนึ่งในคลาสข้างต้นและเชื่อมโยงกับสตรีม เช่น
MemoryStream memoryStream = new MemoryStream();
StreamWriter myStreamWriter = new StreamWriter(memoryStream);
StreamReader และ StreamWriter แปลงระหว่างชนิดเนทีฟและการแสดงสตริงจากนั้นโอนสายไปยังและจากสตรีมเป็นไบต์ ดังนั้น
myStreamWriter.Write(123);
จะเขียน "123" (สามตัวอักษร '1', '2' ตามด้วย '3') ลงในสตรีม หากคุณกำลังจัดการกับไฟล์ข้อความ (เช่น html) StreamReader และ StreamWriter คือคลาสที่คุณจะใช้
แต่ทว่า
myBinaryWriter.Write(123);
จะเขียนสี่ไบต์แทนค่าจำนวนเต็ม 32 บิต 123 (0x7B, 0x00, 0x00, 0x00) หากคุณกำลังจัดการกับไฟล์ไบนารีหรือโปรโตคอลเครือข่าย BinaryReader และ BinaryWriter คือสิ่งที่คุณอาจใช้ (หากคุณกำลังแลกเปลี่ยนข้อมูลกับเครือข่ายหรือระบบอื่น ๆ ที่คุณต้องมีสติในการendiannessแต่ที่โพสต์อื่น.)