Rumah  >  Artikel  >  pembangunan bahagian belakang  >  BinaryWriter dalam C#

BinaryWriter dalam C#

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

Dalam C#, BinaryWriter ialah kelas yang digunakan untuk menulis jenis primitif sebagai data binari dalam aliran pengekodan tertentu. Ia terdapat di bawah ruang nama System.IO.

Berikut ialah beberapa perkara penting berkenaan BinaryWriter:

  • BinaryWriter digunakan untuk mencipta fail binari.
  • BinaryWriter boleh digunakan untuk menulis rentetan dalam pengekodan tertentu.
  • Untuk mencipta objek BinaryWriter, kita perlu menghantar objek Stream kepada pembina kelas BinaryWriter.
  • Semasa mencipta objek BinaryWriter, jika kami tidak menyatakan sebarang pengekodan maka secara lalai pengekodan UTF-8 akan digunakan.

Sintaks dengan Penjelasan

Pembina untuk mencipta objek BinaryWriter tersedia dalam empat bentuk terlebih muatan. Sintaks untuk mencipta objek BinaryWriter menggunakan semua pembina yang terlebih beban adalah seperti berikut:

Sintaks #1

protected BinaryWriter();

Ia digunakan untuk memulakan contoh kelas BinaryWriter.

Sintaks #2

BinaryWriter binaryWriter = new BinaryWriter(outputStream) ;

Pernyataan di atas memulakan instance baharu kelas BinaryWriter berdasarkan strim yang ditentukan (outputStream) dan menggunakan pengekodan aksara UTF-8.

Sintaks #3

BinaryWriter binaryWriter = new BinaryWriter(outputStream, encoding);

Pernyataan di atas memulakan contoh baharu BinaryWriter berdasarkan strim (outputStream) dan pengekodan aksara (pengekodan) yang ditentukan.

Sintaks #4

BinaryWriter binaryWriter = new BinaryWriter(outputStream, encoding, true);
  • Pernyataan di atas berfungsi serupa dengan pernyataan kedua dan ketiga, kecuali ia mempunyai parameter tambahan jenis data Boolean yang boleh digunakan oleh seseorang untuk menunjukkan sama ada dia mahu memastikan aliran keluaran terbuka selepas objek BinaryWriter dilupuskan.
  • Untuk membiarkan strim terbuka, nilai parameter Boolean hendaklah ditetapkan kepada 'true' jika tidak, ia hendaklah ditetapkan kepada 'false'.
  • Kita boleh mencipta objek kelas BinaryWriter di dalam blok 'menggunakan' supaya memori yang diduduki oleh objek akan dikeluarkan secara automatik apabila kerja objek selesai dan ia tidak diperlukan lagi.

Kod:

using (BinaryWriter binaryWriter = new BinaryWriter(File.Open(fileName, FileMode.Create )) )
{
//user code
}

Di sini, kaedah File.Open() mengembalikan objek FileStream yang membantu mencipta contoh BinaryWriter.

Bagaimana BinaryWriter Berfungsi dalam C#?

  • Dalam C#, BinaryWriter digunakan untuk menulis data binari pada fail atau kita boleh mengatakan bahawa ia digunakan untuk mencipta fail binari. Ia membantu kami menulis jenis data primitif dalam format binari ke strim. Ia juga membantu kami menulis rentetan dalam pengekodan aksara tertentu.
  • Untuk bekerja dengan BinaryWriter, adalah perlu untuk mengimport ruang nama System.IO dalam program. Kemudian, kita boleh mencipta objek kelas BinaryWriter dengan menggunakan operator 'baru' dan memintas objek Stream kepada pembina BinaryWriter.
  • Untuk mencipta contoh BinaryWriter, kami biasanya menyediakan objek Stream kepada pembinanya pada masa yang sama kami boleh menyediakan parameter pilihan yang menentukan pengekodan untuk digunakan semasa menulis fail. Sekiranya, pengguna tidak memberikan sebarang pengekodan aksara maka pengekodan UTF-8 akan digunakan secara lalai.
  • Terdapat satu lagi parameter pilihan yang boleh dihantar kepada pembina semasa mencipta objek BinaryWriter. Parameter ini adalah jenis Boolean dan digunakan untuk menentukan sama ada pengguna mahu strim semasa kekal terbuka atau tidak selepas objek BinaryWriter dilupuskan.
  • Kelas BinaryWriter menyediakan kaedah Write() yang berbeza untuk jenis data yang berbeza. Kaedah ini digunakan untuk menulis data ke fail binari. Oleh kerana kaedah Write(Int32) digunakan untuk menulis integer bertanda empat bait kepada strim semasa dan juga memajukan kedudukan strim sebanyak empat bait.

Kaedah BinaryWriter

Jadual berikut menunjukkan butiran beberapa kaedah Write() BinaryWriter untuk jenis data yang berbeza:

Method Description
Write(Boolean) This method is used to write the one-byte Boolean value to the present stream; 0 represents false while 1 represents true.
Write(Byte) This method is used to write an unsigned byte to the present stream and then it advances the position of the stream by one byte.
Write(Char) This method is used to write Unicode character to present stream and also it advances the present stream position according to the character encoding used and according to the characters being written to the present stream.
Write(Decimal) This method is used to write a decimal value to the present stream and also it advances the position of the current stream by sixteen bytes.
Write(Double) This method is used to write an eight-byte floating-point value to the present stream and then it also advances the position of the current stream by eight bytes.
Write(Int32) This method is used to write a four-byte signed integer to the present stream and then it advances the position of current stream by four bytes.
Write(String) This method is used to write length prefixed string to present stream in the present encoding of BinaryWriter and also it advances the current stream position according to the encoding used and according to the characters being written to the present stream.

Examples to Implement BinaryWriter in C#

Example showing the creation of file:

Code:

using System;
using System.IO;
namespace ConsoleApp4
{
public class Demo
{
string fileLocation = "E:\\Content\\newBinaryFile.dat";
public void WritingFile()
{
try
{
//checking if file exists
if (File.Exists(fileLocation))
{
File.Delete(fileLocation);
}
FileStream fileStream = new FileStream(fileLocation, FileMode.Create,
FileAccess.Write, FileShare.ReadWrite);
//creating binary file using BinaryWriter
using (BinaryWriter binaryWriter = new BinaryWriter(fileStream))
{
//writing data using different Write() methods
//of BinaryWriter
binaryWriter.Write(5253);
binaryWriter.Write("This is a string value.");
binaryWriter.Write('A');
}
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}
}
public void ReadingFile()
{
try
{
FileStream fileStream = new FileStream(fileLocation, FileMode.Open,
FileAccess.Read, FileShare.ReadWrite);
using (BinaryReader binaryReader = new BinaryReader(fileStream))
{
Console.WriteLine("IntegerValue = " + binaryReader.ReadInt32());
Console.WriteLine("StringValue = " + binaryReader.ReadString());
Console.WriteLine("CharValue = " + binaryReader.ReadChar());
}
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}
}
}
public class BinaryWriterDemo
{
static void Main(string[] args)
{
Demo demoObj = new Demo();
demoObj.WritingFile();
demoObj.ReadingFile();
Console.ReadLine();
}
}
}

Output:

BinaryWriter dalam C#

Conclusion

In C#, the BinaryWriter class is used to write primitive types as binary information to the stream. If the encoding is not defined, then the BinaryWriter class uses the default UTF-8 character encoding to write data to a binary file. An object of BinaryWriter can be created using the Stream object.

Atas ialah kandungan terperinci BinaryWriter dalam C#. 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:DataReader C#Artikel seterusnya:DataReader C#