Rumah  >  Artikel  >  pembangunan bahagian belakang  >  C# BinaryReader

C# BinaryReader

WBOY
WBOYasal
2024-09-03 15:22:40573semak imbas

Dalam C#, BinaryReader ialah kelas yang digunakan untuk mengendalikan data binari. Ia ditemui di bawah ruang nama System.IO. BinaryReader digunakan untuk membaca jenis data primitif sebagai nilai binari dalam aliran pengekodan tertentu. BinaryReader berfungsi dengan objek Stream iaitu untuk mencipta objek BinaryReader, kita perlu menghantar objek Stream dalam pembinanya. Kelas BinaryReader mempunyai tiga pembina terlebih beban untuk bekerja dengan data binari. Secara lalai, BinaryReader menggunakan pengekodan UTF-8 untuk membaca data sehingga kami menentukan pengekodan aksara lain semasa mencipta objeknya.

Sintaks dengan penjelasan

Kita boleh mencipta objek BinaryReader dalam tiga cara seperti yang ditunjukkan di bawah:

BinaryReader binary_reader = new BinaryReader(inputStream);

Pernyataan di atas memulakan contoh baharu BinaryReader berdasarkan strim yang ditentukan (inputStream) dengan menggunakan pengekodan UTF-8.

BinaryReader binary_reader = new BinaryReader(inputStream, encoding);

Pernyataan ini memulakan tika baharu BinaryReader berdasarkan strim yang ditentukan (inputStream) dan pengekodan yang ditentukan oleh pengekodan.

BinaryReader binary_reader = new BinaryReader(inputStream, encoding, true);

Pernyataan ini berfungsi sama seperti dua pernyataan di atas dengan parameter tambahan jenis Boolean yang digunakan untuk menentukan sama ada pengguna mahu membiarkan strim terbuka selepas objek BinaryReader dilupuskan. Parameter ini perlu 'benar' untuk membiarkan strim terbuka jika tidak, ia perlu 'palsu'.

Selain daripada tiga cara ini, kami juga boleh mencipta BinaryReader menggunakan pernyataan berikut:

using(BinaryReader binary_reader = new BinaryReader(File.Open(file_path, FileMode.Open)))
{
//user code
}

Dalam pernyataan di atas, kaedah File.Open() mengembalikan objek FileStream dan dengan itu ia membantu dalam mencipta objek BinaryReader.

Faedah mencipta objek di dalam blok 'menggunakan' ialah ia membebaskan memori yang dipegang oleh objek apabila kerja objek selesai dan ia tidak lagi diperlukan.

Bagaimana BinaryReader berfungsi dalam C#?

BinaryReader digunakan untuk membaca maklumat binari iaitu digunakan untuk membaca data yang disimpan dalam fail binari. Fail binari menyimpan data dengan cara yang boleh difahami dengan mudah oleh mesin tetapi bagi manusia adalah sangat sukar untuk memahami data tersebut. Untuk membantu memahami data tersebut BinaryReader digunakan. Untuk bekerja dengan BinaryReader, kami terlebih dahulu perlu mengimport ruang nama System.IO dalam kod kami. Selepas ini, kita perlu mencipta instance BinaryReader dengan bantuan operator 'baharu' dan memintas objek Stream di dalam pembina BinaryReader.

Semasa mencipta contoh BinaryReader, kami menyediakan strim untuk dibaca daripada kemudian kami boleh menentukan pengekodan aksara untuk digunakan jika kami tidak menentukan pengekodan, secara lalai pengekodan UTF-8 digunakan. Bersama-sama ini, kami boleh menentukan secara pilihan jika kami mahu strim dibuka selepas objek BinaryReader dilupuskan seperti yang ditunjukkan dalam pernyataan di bawah.

BinaryReader binary_reader = new BinaryReader(inputStream, encoding, true);

Kemudian dengan bantuan kaedah Read() BinaryReader yang berbeza yang disediakan untuk jenis data yang berbeza, kita boleh membaca data daripada fail.

BinaryReader mempunyai banyak kaedah Read() yang menyokong jenis data yang berbeza dan ia digunakan untuk membaca jenis data primitif daripada strim. Seperti kaedah ReadString() BinaryReader digunakan untuk membaca bait seterusnya sebagai nilai rentetan dan juga ia memajukan kedudukan semasa dalam strim sebanyak satu bait.

Kaedah Baca() BinaryReader untuk jenis data yang berbeza dalam jadual berikut:

Method Description
Read() It is used to read characters from an underlying stream and it also advances the current position of the stream according to the Encoding used and the specific character being read from the stream.
ReadBoolean() It is used to read the Boolean value from the stream and it also advances the current position of the stream by one byte.
ReadByte() It is used to read the next byte from the current stream and it also advances the current position of the stream by one byte.
ReadChar() It is used to read the next character from the current stream and it also advances the current position of the stream according to the Encoding used and the specific character being read from the stream.
ReadDecimal() It is used to read the decimal value from the current stream and it also advances the current position of the stream by sixteen bytes.
ReadDouble() It is used to read an 8-byte floating-point value from the current stream and advances the current position of the stream by eight bytes.
ReadInt32() It is used to read a 4-byte signed integer from the current stream and also it advances the current position of the stream by four bytes.
ReadString() It is used to read a string from the current stream.

Example of C# Binaryreader

Example of creating a file using BinaryWriter and reading it using BInaryReader.

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApp4
{
public class Program
{
string filePath = "E:\\Content\\binaryFile.dat";
public void WriteFile()
{
try
{
//checking if the file already exists
if (File.Exists(filePath))
{
File.Delete(filePath);
}
FileStream stream = new FileStream(filePath, FileMode.OpenOrCreate,
FileAccess.Write, FileShare.ReadWrite);
//creating binary file using BinaryWriter
using (BinaryWriter writer = new BinaryWriter(stream))
{
writer.Write("This is string");
writer.Write(100.53);
writer.Write(true);
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
public void ReadFile()
{
try
{
//creating an object of Stream
FileStream stream = new FileStream(filePath, FileMode.Open,
FileAccess.Read, FileShare.ReadWrite);
//creating BinaryReader using Stream object
using (BinaryReader reader = new BinaryReader(stream))
{
//reading data using Read() methods of different data types
Console.WriteLine("String Value : " + reader.ReadString());
Console.WriteLine("Double Value : " + reader.ReadDouble());
Console.WriteLine("Boolean Value : " + reader.ReadBoolean());
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
public class BinaryReaderDemo
{
static void Main(string[] args)
{
Program obj = new Program();
obj.WriteFile();
obj.ReadFile();
Console.ReadKey();
}
}
}

Output:

C# BinaryReader

Conclusion

BinaryReader is used to read primitive data types as binary values in a specific encoding stream. If not defined explicitly, by default BinaryReader uses UTF-8 encoding to read data. Stream object needs to be passed inside the constructor of BinaryReader in order to create its instance.

Atas ialah kandungan terperinci C# BinaryReader. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:BinaryWriter dalam C#Artikel seterusnya:BinaryWriter dalam C#