ตรวจสอบคลาส 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 ซึ่งมีวิธีการที่ตรงไปตรงมาในการจัดการชนิดข้อมูลต่าง ๆ ทําให้จําเป็นสําหรับงานที่เกี่ยวข้องกับไฟล์ไบนารี การจัดเรียงข้อมูลและการจัดเก็บมัลติมีเดีย การทําความเข้าใจการใช้งานและสถานการณ์จะช่วยให้คุณจัดการข้อมูลไบนารีในโครงการของคุณได้อย่างมีประสิทธิภาพ