Bagikan melalui


BinaryReader Kelas

Definisi

Membaca jenis data primitif sebagai nilai biner dalam pengodean tertentu.

public ref class BinaryReader : IDisposable
public class BinaryReader : IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryReader : IDisposable
type BinaryReader = class
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryReader = class
    interface IDisposable
Public Class BinaryReader
Implements IDisposable
Warisan
BinaryReader
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 BinaryReader menyediakan metode yang menyederhanakan pembacaan jenis data primitif dari aliran. Misalnya, Anda dapat menggunakan ReadBoolean metode untuk membaca byte berikutnya sebagai nilai Boolean dan memajukan posisi saat ini dalam aliran satu byte. Kelas ini mencakup metode baca yang mendukung berbagai jenis data.

Saat Anda membuat instans BinaryReader baru kelas , Anda menyediakan aliran untuk dibaca, dan secara opsional menentukan jenis pengodean dan apakah akan membiarkan aliran terbuka setelah membuang BinaryReader 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 (dalam C#) atau Using (di Visual Basic). Untuk informasi selengkapnya, lihat bagian "Menggunakan Objek yang Mengimplementasikan IDisposable" dalam IDisposable topik antarmuka.

Konstruktor

BinaryReader(Stream)

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

BinaryReader(Stream, Encoding)

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

BinaryReader(Stream, Encoding, Boolean)

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

Properti

BaseStream

Mengekspos akses ke aliran yang BinaryReadermendasar dari .

Metode

Close()

Menutup pembaca saat ini dan aliran yang mendasar.

Dispose()

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

Dispose(Boolean)

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

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
FillBuffer(Int32)

Mengisi buffer internal dengan jumlah byte yang ditentukan yang dibaca dari aliran.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
PeekChar()

Mengembalikan karakter berikutnya yang tersedia dan tidak memajukan posisi byte atau karakter.

Read()

Membaca karakter dari aliran yang mendasar dan memajukan posisi aliran saat ini sesuai dengan Encoding karakter yang digunakan dan karakter tertentu yang dibaca dari aliran.

Read(Byte[], Int32, Int32)

Membaca jumlah byte yang ditentukan dari aliran, mulai dari titik tertentu dalam array byte.

Read(Char[], Int32, Int32)

Membaca jumlah karakter yang ditentukan dari aliran, dimulai dari titik tertentu dalam array karakter.

Read(Span<Byte>)

Membaca urutan byte dari aliran saat ini dan memajukan posisi dalam aliran dengan jumlah byte yang dibaca.

Read(Span<Char>)

Membaca, dari aliran saat ini, jumlah karakter yang sama dengan panjang buffer yang disediakan, menulisnya di buffer yang disediakan, dan memajukan posisi saat ini sesuai dengan Encoding karakter yang digunakan dan karakter tertentu yang dibaca dari aliran.

Read7BitEncodedInt()

Membaca dalam bilangan bulat 32-bit dalam format terkompresi.

Read7BitEncodedInt64()

Membaca angka 7 bit pada satu waktu.

ReadBoolean()

Boolean Membaca nilai dari aliran saat ini dan memajukan posisi aliran saat ini dengan satu byte.

ReadByte()

Membaca byte berikutnya dari aliran saat ini dan memajukan posisi aliran saat ini dengan satu byte.

ReadBytes(Int32)

Membaca jumlah byte yang ditentukan dari aliran saat ini ke dalam array byte dan memajukan posisi saat ini dengan jumlah byte tersebut.

ReadChar()

Membaca karakter berikutnya dari aliran saat ini dan memajukan posisi aliran saat ini sesuai dengan Encoding karakter yang digunakan dan karakter tertentu yang dibaca dari aliran.

ReadChars(Int32)

Membaca jumlah karakter yang ditentukan dari aliran saat ini, mengembalikan data dalam array karakter, dan memajukan posisi saat ini sesuai dengan karakter yang Encoding digunakan dan karakter tertentu yang dibaca dari aliran.

ReadDecimal()

Membaca nilai desimal dari aliran saat ini dan memajukan posisi aliran saat ini sebesar enam belas byte.

ReadDouble()

Membaca nilai titik float 8-byte dari aliran saat ini dan memajukan posisi aliran saat ini sebesar delapan byte.

ReadHalf()

Membaca nilai titik mengambang 2-byte dari aliran saat ini dan memajukan posisi aliran saat ini dengan dua byte.

ReadInt16()

Membaca bilangan bulat bertanda tangan 2 byte dari aliran saat ini dan memajukan posisi aliran saat ini sebesar dua byte.

ReadInt32()

Membaca bilangan bulat bertanda tangan 4-byte dari aliran saat ini dan memajukan posisi aliran saat ini sebesar empat byte.

ReadInt64()

Membaca bilangan bulat bertanda tangan 8-byte dari aliran saat ini dan memajukan posisi aliran saat ini sebesar delapan byte.

ReadSByte()

Membaca byte yang ditandatangani dari aliran ini dan memajukan posisi aliran saat ini dengan satu byte.

ReadSingle()

Membaca nilai titik float 4-byte dari aliran saat ini dan memajukan posisi aliran saat ini sebesar empat byte.

ReadString()

Membaca string dari aliran saat ini. String diawali dengan panjang, dikodekan sebagai bilangan bulat tujuh bit sekaligus.

ReadUInt16()

Membaca bilangan bulat 2-byte yang tidak ditandatangani dari aliran saat ini menggunakan pengodean little-endian dan memajukan posisi aliran sebesar dua byte.

ReadUInt32()

Membaca bilangan bulat 4-byte yang tidak ditandatangani dari aliran saat ini dan memajukan posisi aliran sebanyak empat byte.

ReadUInt64()

Membaca bilangan bulat yang tidak ditandatangani 8 byte dari aliran saat ini dan memajukan posisi aliran sebesar delapan byte.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

IDisposable.Dispose()

API ini mendukung infrastruktur produk dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Merilis kecuali dikonfigurasi BaseStream sebaliknya dengan BinaryReader(Stream, Encoding, Boolean).

Berlaku untuk

Lihat juga