ตรวจสอบคลาส BinaryReader และ BinaryWriter

เสร็จสมบูรณ์เมื่อ

ไฟล์ไบนารีเป็นไฟล์ที่ประกอบด้วยข้อมูลในรูปแบบที่มนุษย์ไม่สามารถอ่านได้ ซึ่งมักจะใช้สําหรับจัดเก็บโครงสร้างข้อมูลที่ซับซ้อน รูปภาพ เสียง วิดีโอ และเนื้อหาชนิดอื่น ๆ ไฟล์ไบนารีสามารถมีประสิทธิภาพมากขึ้นในแง่ของที่เก็บข้อมูลและประสิทธิภาพการทํางานเมื่อเทียบกับไฟล์ข้อความโดยเฉพาะอย่างยิ่งเมื่อจัดการกับข้อมูลจํานวนมาก ไฟล์ไบนารีโดยทั่วไปไม่ได้หมายถึงการเปิดและอ่านโดยมนุษย์เนื่องจากอาจมีข้อมูลในรูปแบบที่เฉพาะเจาะจงสําหรับแอปพลิเคชันหรือระบบเฉพาะ แต่ออกแบบมาเพื่อประมวลผลโดยซอฟต์แวร์ที่เข้าใจรูปแบบไบนารี

BinaryReaderคลาส และ BinaryWriter เป็นส่วนหนึ่งของ เนมสเปซของ System.IO NET และได้รับการออกแบบมาสําหรับการอ่านและเขียนข้อมูลไบนารี เป็นสิ่งสําคัญสําหรับนักพัฒนาที่ต้องทําความเข้าใจเวลาและวิธีการใช้ BinaryReader และ BinaryWriter สําหรับไฟล์ที่มีประสิทธิภาพและการจัดการสตรีมข้อมูล

ตรวจสอบกรณีการใช้งานสําหรับ BinaryReader และ BinaryWriter

แม้ว่าการใช้ StreamReader และ StreamWriter มักจะเพียงพอสําหรับการดําเนินการของไฟล์ข้อความ แต่มีสถานการณ์ที่จําเป็นต้องใช้ BinaryReader และBinaryWriter ต่อไปนี้เป็นกรณีทั่วไปที่คุณอาจพบแฟ้มไบนารีและจําเป็นต้องใช้ BinaryReader และ/หรือ BinaryWriter:

  • ไฟล์การกําหนดค่า: แอปพลิเคชันบางตัวใช้ไฟล์การกําหนดค่าไบนารีเพื่อจัดเก็บการตั้งค่าและการกําหนดลักษณะ คุณอาจจําเป็นต้องอ่านหรือเขียนไฟล์เหล่านี้เพื่อจัดการการกําหนดค่าแอปพลิเคชัน
  • การทําให้ข้อมูลเป็นอนุกรม: ไฟล์ไบนารีมักใช้สําหรับการสร้างซีเรียลข้อมูลซึ่งมีการแปลงโครงสร้างข้อมูลที่ซับซ้อนเป็นรูปแบบไบนารีสําหรับการจัดเก็บหรือการส่ง การดําเนินการนี้จะเป็นประโยชน์สําหรับการบันทึกข้อมูลเกม การตั้งค่า หรือข้อมูลที่มีโครงสร้างอื่นๆ
  • ที่เก็บข้อมูลมัลติมีเดีย: ไฟล์ไบนารีใช้เพื่อจัดเก็บเนื้อหามัลติมีเดีย เช่น รูปภาพ เสียง และวิดีโอ คุณอาจทํางานกับไฟล์ไบนารีเมื่อจัดการไฟล์สื่อในแอปพลิเคชันของไฟล์ดังกล่าว
  • การสื่อสารเครือข่าย: ไฟล์ไบนารีที่ใช้ในการสื่อสารเครือข่ายเพื่อส่งข้อมูลอย่างมีประสิทธิภาพ คุณอาจพบไฟล์ไบนารีเมื่อทํางานกับโครงการที่เกี่ยวข้องกับการส่งหรือรับข้อมูลบนเครือข่าย
  • การบีบอัดไฟล์: ไฟล์ไบนารีใช้สําหรับการบีบอัดไฟล์ ซึ่งข้อมูลจะถูกบีบอัดเป็นรูปแบบไบนารีเพื่อประหยัดพื้นที่ คุณอาจจําเป็นต้องทํางานกับไฟล์บีบอัดในโครงการของพวกเขา

ตัวอย่างที่ใช้งานได้จริง:

  • การบันทึกข้อมูลเกม: เมื่อพัฒนาเกม คุณอาจใช้ BinaryWriter เพื่อบันทึกสถานะเกม (เช่น ความคืบหน้าของผู้เล่น คะแนน) ในไฟล์ไบนารีและ BinaryReader โหลดสถานะเกมเมื่อเริ่มเกม
  • การจัดการไฟล์สื่อ: คุณอาจใช้ BinaryReader เพื่ออ่านไฟล์รูปภาพหรือเสียง และ BinaryWriter บันทึกไฟล์สื่อที่แก้ไขแล้ว
  • การจัดการการกําหนดค่า: คุณอาจใช้ BinaryWriter เพื่อบันทึกการตั้งค่าแอปพลิเคชันในไฟล์ไบนารี และ BinaryReader โหลดการตั้งค่าเหล่านี้เมื่อเริ่มต้นแอปพลิเคชัน

ในขณะที่ StreamReader และ StreamWriter เหมาะสําหรับการดําเนินการไฟล์ข้อความ และ BinaryReaderBinaryWriter มีประโยชน์สําหรับสถานการณ์ที่คุณจําเป็นต้องทํางานกับข้อมูลไบนารี การทําความเข้าใจกรณีทั่วไปเหล่านี้จะช่วยให้คุณรับรู้เวลาที่จะใช้แต่ละคลาสและวิธีการจัดการไฟล์ชนิดต่าง ๆ ในโครงการของพวกเขา

ตรวจสอบโดยใช้ BinaryReader และ BinaryWriter

การใช้ BinaryReader และ BinaryWriter

using System;
using System.IO;
using System.Text;

public class BinaryReaderWriterExample
{
    public static void Main()
    {
        // Create a file to write to
        using (FileStream fs = new FileStream("example.dat", FileMode.Create))
        {
            using (BinaryWriter writer = new BinaryWriter(fs))
            {
                // Write some data
                writer.Write(42); // Integer
                writer.Write(3.14); // Double
                writer.Write("Hello, World!"); // String
            }
        }

        // Read the data back
        using (FileStream fs = new FileStream("example.dat", FileMode.Open))
        {
            using (BinaryReader reader = new BinaryReader(fs))
            {
                int intValue = reader.ReadInt32();
                double doubleValue = reader.ReadDouble();
                string stringValue = reader.ReadString();

                Console.WriteLine($"Integer: {intValue}");
                Console.WriteLine($"Double: {doubleValue}");
                Console.WriteLine($"String: {stringValue}");
            }
        }
    }
}

ในตัวอย่างนี้ เราสร้างไฟล์ไบนารีที่example.datชื่อและเขียนจํานวนเต็ม คู่ และสตริงโดยใช้BinaryWriter จากนั้นเราอ่านข้อมูลย้อนกลับโดยใช้ BinaryReader และพิมพ์ไปยังคอนโซล

ใช้ BinaryReader และ BinaryWriter ที่มีการเข้ารหัส

using System;
using System.IO;
using System.Text;

public class BinaryReaderWriterEncodingExample
{
    public static void Main()
    {
        // Create a file to write to
        using (FileStream fs = new FileStream("example.dat", FileMode.Create))
        {
            using (BinaryWriter writer = new BinaryWriter(fs, Encoding.UTF8))
            {
                // Write some data with UTF-8 encoding
                writer.Write(42); // Integer
                writer.Write(3.14); // Double
                writer.Write("Hello, World!"); // String
            }
        }

        // Read the data back
        using (FileStream fs = new FileStream("example.dat", FileMode.Open))
        {
            using (BinaryReader reader = new BinaryReader(fs, Encoding.UTF8))
            {
                int intValue = reader.ReadInt32();
                double doubleValue = reader.ReadDouble();
                string stringValue = reader.ReadString();

                Console.WriteLine($"Integer: {intValue}");
                Console.WriteLine($"Double: {doubleValue}");
                Console.WriteLine($"String: {stringValue}");
            }
        }
    }
}

ในตัวอย่างนี้ เราสร้างไฟล์ไบนารีที่ example.dat ชื่อและเขียนจํานวนเต็ม คู่ และสตริงโดยใช้ BinaryWriter การเข้ารหัส UTF-8 จากนั้นเราอ่านข้อมูลย้อนกลับโดยใช้ BinaryReader การเข้ารหัสเดียวกันและพิมพ์ไปยังคอนโซล

การใช้ BinaryReader และ BinaryWriter กับ FileStream

using System;
using System.IO;
using System.Text;

public class BinaryReaderWriterFileStreamExample
{
    public static void Main()
    {
        // Create a file to write to
        using (FileStream fs = new FileStream("example.dat", FileMode.Create))
        {
            using (BinaryWriter writer = new BinaryWriter(fs))
            {
                // Write some data
                writer.Write(42); // Integer
                writer.Write(3.14); // Double
                writer.Write("Hello, World!"); // String
            }
        }

        // Read the data back
        using (FileStream fs = new FileStream("example.dat", FileMode.Open))
        {
            using (BinaryReader reader = new BinaryReader(fs))
            {
                int intValue = reader.ReadInt32();
                double doubleValue = reader.ReadDouble();
                string stringValue = reader.ReadString();

                Console.WriteLine($"Integer: {intValue}");
                Console.WriteLine($"Double: {doubleValue}");
                Console.WriteLine($"String: {stringValue}");
            }
        }
    }
}

ในตัวอย่างนี้ เราสร้างไฟล์ไบนารีที่example.datชื่อและเขียนจํานวนเต็ม คู่ และสตริงโดยใช้ BinaryWriter ด้วยFileStream จากนั้นเราอ่านข้อมูลย้อนกลับโดยใช้ BinaryReader เหมือนกัน FileStream และพิมพ์ไปยังคอนโซล

สรุป

คลาส BinaryReader และ BinaryWriter เป็นเครื่องมือที่มีประสิทธิภาพสําหรับการอ่านและเขียนข้อมูลไบนารีในแอปพลิเคชัน .NET ซึ่งมีวิธีการที่ตรงไปตรงมาในการจัดการชนิดข้อมูลต่าง ๆ ทําให้จําเป็นสําหรับงานที่เกี่ยวข้องกับไฟล์ไบนารี การจัดเรียงข้อมูลและการจัดเก็บมัลติมีเดีย การทําความเข้าใจการใช้งานและสถานการณ์จะช่วยให้คุณจัดการข้อมูลไบนารีในโครงการของคุณได้อย่างมีประสิทธิภาพ