BinaryReader Klasa

Definicja

Odczytuje pierwotne typy danych jako wartości binarne w określonym kodowaniu.Reads primitive data types as binary values in a specific encoding.

public ref class BinaryReader : IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryReader : IDisposable
type BinaryReader = class
    interface IDisposable
Public Class BinaryReader
Implements IDisposable
Dziedziczenie
BinaryReader
Atrybuty
Implementuje

Przykłady

Poniższy przykład kodu demonstruje sposób przechowywania i pobierania ustawień aplikacji w pliku.The following code example demonstrates how to store and retrieve application settings in a file.

using System;
using System.IO;

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

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

    public static void WriteDefaultValues()
    {
        using (BinaryWriter writer = new BinaryWriter(File.Open(fileName, FileMode.Create)))
        {
            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 (BinaryReader reader = new BinaryReader(File.Open(fileName, FileMode.Open)))
            {
                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);
        }
    }
}
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

Uwagi

Klasa BinaryReader udostępnia metody upraszczające odczytywanie typów pierwotnych danych ze strumienia.The BinaryReader class provides methods that simplify reading primitive data types from a stream. Można na przykład użyć metody ReadBoolean, aby odczytać następny bajt jako wartość logiczną, i przejść do aktualnej pozycji w strumieniu o jeden bajt.For example, you can use the ReadBoolean method to read the next byte as a Boolean value and advance the current position in the stream by one byte. Klasa obejmuje metody odczytu obsługujące różne typy danych.The class includes read methods that support different data types.

Podczas tworzenia nowego wystąpienia klasy BinaryReader należy podać strumień, z którego ma zostać odczytany, i opcjonalnie określić typ kodowania oraz czy pozostawić strumień otwarty po usunięciu obiektu BinaryReader.When you create a new instance of the BinaryReader class, you provide the stream to read from, and optionally specify the type of encoding and whether to leave the stream open after disposing the BinaryReader object. Jeśli nie określisz typu kodowania, zostanie użyty UTF-8.If you do not specify an encoding type, UTF-8 is used.

Ważne

Ten typ implementuje interfejs IDisposable.This type implements the IDisposable interface. Po zakończeniu korzystania z typu należy usunąć jego wartość bezpośrednio lub pośrednio.When you have finished using the type, you should dispose of it either directly or indirectly. Aby usunąć typ bezpośrednio, wywołaj metodę Dispose w bloku try/catch.To dispose of the type directly, call its Dispose method in a try/catch block. Aby usunąć go pośrednio, użyj konstrukcji językowej, takiej jak using (in C#) lub Using (w Visual Basic).To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). Aby uzyskać więcej informacji, zobacz sekcję "Używanie obiektu implementującego interfejs IDisposable" w temacie interfejsu IDisposable.For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

Konstruktory

BinaryReader(Stream)

Inicjuje nowe wystąpienie klasy BinaryReader na podstawie określonego strumienia i kodowania UTF-8.Initializes a new instance of the BinaryReader class based on the specified stream and using UTF-8 encoding.

BinaryReader(Stream, Encoding)

Inicjuje nowe wystąpienie klasy BinaryReader na podstawie określonego strumienia i kodowania znaków.Initializes a new instance of the BinaryReader class based on the specified stream and character encoding.

BinaryReader(Stream, Encoding, Boolean)

Inicjuje nowe wystąpienie klasy BinaryReader na podstawie określonego strumienia i kodowania znaków, opcjonalnie pozostawiając otwarcie strumienia.Initializes a new instance of the BinaryReader class based on the specified stream and character encoding, and optionally leaves the stream open.

Właściwości

BaseStream

Udostępnia dostęp do podstawowego strumienia BinaryReader.Exposes access to the underlying stream of the BinaryReader.

Metody

Close()

Zamyka bieżący czytnik i źródłowy strumień.Closes the current reader and the underlying stream.

Dispose()

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy BinaryReader.Releases all resources used by the current instance of the BinaryReader class.

Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez klasę BinaryReader i opcjonalnie zwalnia zasoby zarządzane.Releases the unmanaged resources used by the BinaryReader class and optionally releases the managed resources.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
FillBuffer(Int32)

Wypełnia bufor wewnętrzny określoną liczbą bajtów odczytanych ze strumienia.Fills the internal buffer with the specified number of bytes read from the stream.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
PeekChar()

Zwraca następny dostępny znak i nie zwiększa litery bajtu lub znaku.Returns the next available character and does not advance the byte or character position.

Read()

Odczytuje znaki z bazowego strumienia i postępuje bieżącą pozycję strumienia zgodnie z użytym Encoding i określonym znakiem odczytywanym ze strumienia.Reads characters from the underlying stream and advances the current position of the stream in accordance with the Encoding used and the specific character being read from the stream.

Read(Byte[], Int32, Int32)

Odczytuje określoną liczbę bajtów ze strumienia, rozpoczynając od określonego punktu w tablicy bajtów.Reads the specified number of bytes from the stream, starting from a specified point in the byte array.

Read(Char[], Int32, Int32)

Odczytuje określoną liczbę znaków ze strumienia, rozpoczynając od określonego punktu w tablicy znaków.Reads the specified number of characters from the stream, starting from a specified point in the character array.

Read(Span<Byte>)

Odczytuje sekwencję bajtów z bieżącego strumienia i postępuje zgodnie z pozycją w strumieniu przez liczbę odczytanych bajtów.Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.

Read(Span<Char>)

Odczytuje z bieżącego strumienia, taką samą liczbę znaków jak długość podanego buforu, zapisuje je w określonym buforze i przesuwa bieżącą pozycję zgodnie z użytym Encoding i określonym znakiem odczytywanym ze strumienia.Reads, from the current stream, the same number of characters as the length of the provided buffer, writes them in the provided buffer, and advances the current position in accordance with the Encoding used and the specific character being read from the stream.

Read7BitEncodedInt()

Odczytuje w 32-bitowej liczbie całkowitej w formacie skompresowanym.Reads in a 32-bit integer in compressed format.

ReadBoolean()

Odczytuje Boolean wartość z bieżącego strumienia i przesuwa bieżącą pozycję strumienia o jeden bajt.Reads a Boolean value from the current stream and advances the current position of the stream by one byte.

ReadByte()

Odczytuje następny bajt z bieżącego strumienia i postępuje zgodnie z bieżącą pozycją strumienia o jeden bajt.Reads the next byte from the current stream and advances the current position of the stream by one byte.

ReadBytes(Int32)

Odczytuje określoną liczbę bajtów z bieżącego strumienia do tablicy bajtów i przesuwa bieżącą pozycję o tę liczbę bajtów.Reads the specified number of bytes from the current stream into a byte array and advances the current position by that number of bytes.

ReadChar()

Odczytuje następny znak z bieżącego strumienia i postępuje zgodnie z bieżącą pozycją strumienia zgodnie z użytym Encoding i określonym znakiem odczytywanym ze strumienia.Reads the next character from the current stream and advances the current position of the stream in accordance with the Encoding used and the specific character being read from the stream.

ReadChars(Int32)

Odczytuje określoną liczbę znaków z bieżącego strumienia, zwraca dane w tablicy znaków i przesuwa bieżącą pozycję zgodnie z użytym Encoding i określonym znakiem odczytywanym ze strumienia.Reads the specified number of characters from the current stream, returns the data in a character array, and advances the current position in accordance with the Encoding used and the specific character being read from the stream.

ReadDecimal()

Odczytuje wartość dziesiętną z bieżącego strumienia i zwiększa bieżącą pozycję strumienia o szesnastu bajtów.Reads a decimal value from the current stream and advances the current position of the stream by sixteen bytes.

ReadDouble()

Odczytuje 8-bajtową wartość zmiennoprzecinkową z bieżącego strumienia i przesuwa bieżącą pozycję strumienia o osiem bajtów.Reads an 8-byte floating point value from the current stream and advances the current position of the stream by eight bytes.

ReadInt16()

Odczytuje 2-bajtową liczbę całkowitą ze znakiem z bieżącego strumienia i przesuwa bieżącą pozycję strumienia o dwa bajty.Reads a 2-byte signed integer from the current stream and advances the current position of the stream by two bytes.

ReadInt32()

Odczytuje 4-bajtową liczbę całkowitą ze znakiem z bieżącego strumienia i przesuwa bieżącą pozycję strumienia o cztery bajty.Reads a 4-byte signed integer from the current stream and advances the current position of the stream by four bytes.

ReadInt64()

Odczytuje 8-bajtową liczbę całkowitą ze znakiem z bieżącego strumienia i przesuwa bieżącą pozycję strumienia o osiem bajtów.Reads an 8-byte signed integer from the current stream and advances the current position of the stream by eight bytes.

ReadSByte()

Odczytuje podpisany bajt z tego strumienia i postępuje zgodnie z bieżącą pozycją strumienia o jeden bajt.Reads a signed byte from this stream and advances the current position of the stream by one byte.

ReadSingle()

Odczytuje 4-bajtową wartość zmiennoprzecinkową z bieżącego strumienia i przesuwa bieżącą pozycję strumienia o cztery bajty.Reads a 4-byte floating point value from the current stream and advances the current position of the stream by four bytes.

ReadString()

Odczytuje ciąg z bieżącego strumienia.Reads a string from the current stream. Ciąg jest poprzedzony długością, zakodowaną jako liczba całkowita siedem bitów w danym momencie.The string is prefixed with the length, encoded as an integer seven bits at a time.

ReadUInt16()

Odczytuje 2-bajtową liczbę całkowitą bez znaku z bieżącego strumienia przy użyciu kodowania little-endian i przesuwa pozycję strumienia o dwa bajty.Reads a 2-byte unsigned integer from the current stream using little-endian encoding and advances the position of the stream by two bytes.

ReadUInt32()

Odczytuje 4-bajtową liczbę całkowitą bez znaku z bieżącego strumienia i przesuwa pozycję strumienia o cztery bajty.Reads a 4-byte unsigned integer from the current stream and advances the position of the stream by four bytes.

ReadUInt64()

Odczytuje 8-bajtową liczbę całkowitą bez znaku z bieżącego strumienia i przesuwa pozycję strumienia o osiem bajtów.Reads an 8-byte unsigned integer from the current stream and advances the position of the stream by eight bytes.

ToString()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IDisposable.Dispose()

Zwalnia wszelkie zasoby używane przez element BinaryReader.Releases all resources used by the BinaryReader.

Dotyczy

Zobacz też