BinaryWriter Kelas

Definisi

Menulis jenis primitif dalam biner ke aliran dan mendukung penulisan string dalam pengodean tertentu.

public ref class BinaryWriter : IDisposable
public ref class BinaryWriter : IAsyncDisposable, IDisposable
public class BinaryWriter : IDisposable
public class BinaryWriter : IAsyncDisposable, IDisposable
[System.Serializable]
public class BinaryWriter : IDisposable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryWriter : IDisposable
type BinaryWriter = class
    interface IDisposable
type BinaryWriter = class
    interface IAsyncDisposable
    interface IDisposable
[<System.Serializable>]
type BinaryWriter = class
    interface IDisposable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryWriter = class
    interface IDisposable
Public Class BinaryWriter
Implements IDisposable
Public Class BinaryWriter
Implements IAsyncDisposable, IDisposable
Warisan
BinaryWriter
Atribut
Penerapan

Contoh

Contoh kode berikut menunjukkan cara menyimpan dan mengambil pengaturan aplikasi dalam file.

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

class ConsoleApplication
{
    const string fileName = "AppSettings.dat";

    static void Main()
    {
        WriteDefaultValues();
        DisplayValues();
    }

    public static void WriteDefaultValues()
    {
        using (var stream = File.Open(fileName, FileMode.Create))
        {
            using (var writer = new BinaryWriter(stream, Encoding.UTF8, false))
            {
                writer.Write(1.250F);
                writer.Write(@"c:\Temp");
                writer.Write(10);
                writer.Write(true);
            }
        }
    }

    public static void DisplayValues()
    {
        float aspectRatio;
        string tempDirectory;
        int autoSaveTime;
        bool showStatusBar;

        if (File.Exists(fileName))
        {
            using (var stream = File.Open(fileName, FileMode.Open))
            {
                using (var reader = new BinaryReader(stream, Encoding.UTF8, false))
                {
                    aspectRatio = reader.ReadSingle();
                    tempDirectory = reader.ReadString();
                    autoSaveTime = reader.ReadInt32();
                    showStatusBar = reader.ReadBoolean();
                }
            }

            Console.WriteLine("Aspect ratio set to: " + aspectRatio);
            Console.WriteLine("Temp directory is: " + tempDirectory);
            Console.WriteLine("Auto save time set to: " + autoSaveTime);
            Console.WriteLine("Show status bar: " + showStatusBar);
        }
    }
}
open System.IO
open System.Text

let fileName = "AppSettings.dat"

let writeDefaultValues () =
    use stream = File.Open(fileName, FileMode.Create)
    use writer = new BinaryWriter(stream, Encoding.UTF8, false)
    writer.Write 1.250F
    writer.Write @"c:\Temp"
    writer.Write 10
    writer.Write true

let displayValues () =
    if File.Exists fileName then
        use stream = File.Open(fileName, FileMode.Open)
        use reader = new BinaryReader(stream, Encoding.UTF8, false)
        let aspectRatio = reader.ReadSingle()
        let tempDirectory = reader.ReadString()
        let autoSaveTime = reader.ReadInt32()
        let showStatusBar = reader.ReadBoolean()

        printfn $"Aspect ratio set to: {aspectRatio}"
        printfn $"Temp directory is: {tempDirectory}"
        printfn $"Auto save time set to: {autoSaveTime}"
        printfn $"Show status bar: {showStatusBar}"

writeDefaultValues ()
displayValues ()
Imports System.IO

Module Module1
    Const fileName As String = "AppSettings.dat"

    Sub Main()
        WriteDefaultValues()
        DisplayValues()
    End Sub

    Sub WriteDefaultValues()
        Using writer As BinaryWriter = New BinaryWriter(File.Open(fileName, FileMode.Create))
            writer.Write(1.25F)
            writer.Write("c:\Temp")
            writer.Write(10)
            writer.Write(True)
        End Using
    End Sub

    Sub DisplayValues()
        Dim aspectRatio As Single
        Dim tempDirectory As String
        Dim autoSaveTime As Integer
        Dim showStatusBar As Boolean

        If (File.Exists(fileName)) Then

            Using reader As BinaryReader = New BinaryReader(File.Open(fileName, FileMode.Open))
                aspectRatio = reader.ReadSingle()
                tempDirectory = reader.ReadString()
                autoSaveTime = reader.ReadInt32()
                showStatusBar = reader.ReadBoolean()
            End Using

            Console.WriteLine("Aspect ratio set to: " & aspectRatio)
            Console.WriteLine("Temp directory is: " & tempDirectory)
            Console.WriteLine("Auto save time set to: " & autoSaveTime)
            Console.WriteLine("Show status bar: " & showStatusBar)
        End If
    End Sub

End Module

Keterangan

Kelas ini BinaryWriter menyediakan metode yang menyederhanakan penulisan jenis data primitif ke aliran. Misalnya, Anda dapat menggunakan Write metode untuk menulis nilai Boolean ke aliran sebagai nilai satu byte. Kelas ini mencakup metode tulis yang mendukung berbagai jenis data.

Saat Anda membuat instans BinaryWriter baru kelas , Anda menyediakan streaming untuk ditulis, dan secara opsional menentukan jenis pengodean dan apakah akan membiarkan aliran terbuka setelah membuang BinaryWriter objek. Jika Anda tidak menentukan jenis pengodean, UTF-8 akan digunakan.

Penting

Jenis ini mengimplementasikan IDisposable antarmuka. Ketika Anda telah selesai menggunakan jenis , Anda harus membuangnya baik secara langsung atau tidak langsung. Untuk membuang jenis secara langsung, panggil metodenya Dispose dalam try/catch blok. Untuk membuangnya secara tidak langsung, gunakan konstruksi bahasa seperti using (di C#) atau Using (di Visual Basic). Untuk informasi selengkapnya, lihat bagian "Menggunakan Objek yang Mengimplementasikan IDisposable" di IDisposable topik antarmuka.

Kelas turunan dapat mengambil alih metode kelas ini untuk memberikan pengodean karakter yang unik.

Konstruktor

BinaryWriter()

Menginisialisasi instans baru kelas BinaryWriter yang menulis ke aliran.

BinaryWriter(Stream)

Menginisialisasi instans BinaryWriter baru kelas berdasarkan aliran yang ditentukan dan menggunakan pengodean UTF-8.

BinaryWriter(Stream, Encoding)

Menginisialisasi instans BinaryWriter baru kelas berdasarkan aliran dan pengodean karakter yang ditentukan.

BinaryWriter(Stream, Encoding, Boolean)

Menginisialisasi instans BinaryWriter baru kelas berdasarkan aliran dan pengodean karakter yang ditentukan, dan secara opsional membiarkan aliran terbuka.

Bidang

Null

Menentukan tanpa BinaryWriter penyimpanan cadangan.

OutStream

Menyimpan aliran yang mendasar.

Properti

BaseStream

Mendapatkan aliran yang mendasar dari BinaryWriter.

Metode

Close()

Menutup aliran saat ini BinaryWriter dan yang mendasar.

Dispose()

Merilis semua sumber daya yang digunakan oleh instans BinaryWriter kelas saat ini.

Dispose(Boolean)

Merilis sumber daya tidak terkelola yang digunakan oleh BinaryWriter dan secara opsional merilis sumber daya terkelola.

DisposeAsync()

Secara asinkron merilis semua sumber daya yang digunakan oleh instans BinaryWriter kelas saat ini.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
Flush()

Menghapus semua buffer untuk penulis saat ini dan menyebabkan data yang di-buffer ditulis ke perangkat yang mendasar.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
Seek(Int32, SeekOrigin)

Mengatur posisi dalam aliran saat ini.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
Write(Boolean)

Menulis nilai satu byte Boolean ke aliran saat ini, dengan 0 mewakili false dan 1 mewakili true.

Write(Byte)

Menulis byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran dengan satu byte.

Write(Byte[])

Menulis array byte ke aliran yang mendasar.

Write(Byte[], Int32, Int32)

Menulis wilayah array byte ke aliran saat ini.

Write(Char)

Menulis karakter Unicode ke aliran saat ini dan memajukan posisi aliran saat ini sesuai dengan karakter yang Encoding digunakan dan karakter tertentu yang ditulis ke aliran.

Write(Char[])

Menulis array karakter ke aliran saat ini dan memajukan posisi aliran saat ini sesuai dengan karakter yang Encoding digunakan dan karakter tertentu yang ditulis ke aliran.

Write(Char[], Int32, Int32)

Menulis bagian array karakter ke aliran saat ini, dan memajukan posisi aliran saat ini sesuai dengan Encoding yang digunakan dan mungkin karakter tertentu yang ditulis ke aliran.

Write(Decimal)

Menulis nilai desimal ke aliran saat ini dan memajukan posisi aliran sebesar enam belas byte.

Write(Double)

Menulis nilai floating-point delapan byte ke aliran saat ini dan memajukan posisi aliran sebesar delapan byte.

Write(Half)

Menulis nilai floating-point dua byte ke aliran saat ini dan memajukan posisi aliran sebesar dua byte.

Write(Int16)

Menulis bilangan bulat bertanda tangan dua byte ke aliran saat ini dan memajukan posisi aliran sebesar dua byte.

Write(Int32)

Menulis bilangan bulat bertanda empat byte ke aliran saat ini dan memajukan posisi aliran sebesar empat byte.

Write(Int64)

Menulis bilangan bulat bertanda delapan byte ke aliran saat ini dan memajukan posisi aliran sebesar delapan byte.

Write(ReadOnlySpan<Byte>)

Menulis rentang byte ke aliran saat ini.

Write(ReadOnlySpan<Char>)

Menulis rentang karakter ke aliran saat ini, dan memajukan posisi aliran saat ini sesuai dengan Encoding yang digunakan dan mungkin karakter tertentu yang ditulis ke aliran.

Write(SByte)

Menulis byte yang ditandatangani ke aliran saat ini dan memajukan posisi aliran dengan satu byte.

Write(Single)

Menulis nilai floating-point empat byte ke aliran saat ini dan memajukan posisi aliran sebesar empat byte.

Write(String)

Menulis string awalan panjang ke aliran ini dalam pengodean saat ini dari BinaryWriter, dan memajukan posisi aliran saat ini sesuai dengan pengodean yang digunakan dan karakter tertentu yang ditulis ke aliran.

Write(UInt16)

Menulis bilangan bulat dua byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran sebesar dua byte.

Write(UInt32)

Menulis bilangan bulat empat byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran sebesar empat byte.

Write(UInt64)

Menulis bilangan bulat delapan byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran sebesar delapan byte.

Write7BitEncodedInt(Int32)

Menulis bilangan bulat 32-bit dalam format terkompresi.

Write7BitEncodedInt64(Int64)

Menulis angka 7 bit pada satu waktu.

Implementasi Antarmuka Eksplisit

IDisposable.Dispose()

Merilis sumber daya tidak terkelola yang digunakan oleh BinaryWriter dan secara opsional merilis sumber daya terkelola.

Metode Ekstensi

ConfigureAwait(IAsyncDisposable, Boolean)

Mengonfigurasi bagaimana menunggu tugas yang dikembalikan dari asinkron sekali pakai dilakukan.

Berlaku untuk

Lihat juga