Bagikan melalui


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 BinaryWriter menyediakan metode yang menyederhanakan penulisan jenis data primitif ke aliran. Misalnya, Anda dapat menggunakan metode Write untuk menulis nilai Boolean ke aliran sebagai nilai satu byte. Kelas ini mencakup metode tulis yang mendukung berbagai jenis data.

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

Penting

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

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 baru kelas BinaryWriter berdasarkan aliran yang ditentukan dan menggunakan pengodean UTF-8.

BinaryWriter(Stream, Encoding)

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

BinaryWriter(Stream, Encoding, Boolean)

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

Bidang

Null

Menentukan BinaryWriter tanpa penyimpanan cadangan.

OutStream

Menyimpan aliran yang mendasar.

Properti

BaseStream

Mendapatkan aliran yang mendasar dari BinaryWriter.

Metode

Close()

Menutup BinaryWriter saat ini dan aliran yang mendasar.

Dispose()

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

Dispose(Boolean)

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

DisposeAsync()

Secara asinkron merilis semua sumber daya yang digunakan oleh instans kelas BinaryWriter 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 buffer ditulis ke perangkat yang mendasar.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(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 Boolean satu byte ke aliran saat ini, dengan 0 mewakili false dan 1 yang 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 Encoding yang 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 Encoding yang 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 tangan empat byte ke aliran saat ini dan memajukan posisi aliran sebanyak empat byte.

Write(Int64)

Menulis bilangan bulat bertanda tangan 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 sebanyak empat byte.

Write(String)

Menulis string berawalan panjang ke aliran ini dalam pengodean BinaryWritersaat ini , 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 sebanyak 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 yang tidak dikelola 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 akan dilakukan.

Berlaku untuk

Lihat juga