Partage via


BinaryReader Classe

Définition

Lit les types de données primitifs sous forme de valeurs binaires avec un encodage spécifique.

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
Héritage
BinaryReader
Attributs
Implémente

Exemples

L’exemple de code suivant montre comment stocker et récupérer des paramètres d’application dans un fichier.

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

Remarques

La BinaryReader classe fournit des méthodes qui simplifient la lecture des types de données primitifs à partir d’un flux. Par exemple, vous pouvez utiliser la ReadBoolean méthode pour lire l’octet suivant en tant que valeur booléenne et avancer la position actuelle dans le flux d’un octet. La classe inclut des méthodes de lecture qui prennent en charge différents types de données.

Lorsque vous créez un instance de la BinaryReader classe, vous fournissez le flux à partir duquel lire et spécifiez éventuellement le type d’encodage et indiquez s’il faut laisser le flux ouvert après avoir supprimé l’objetBinaryReader. Si vous ne spécifiez pas de type d’encodage, UTF-8 est utilisé.

Important

Ce type implémente l'interface IDisposable. Une fois que vous avez fini d’utiliser le type, vous devez le supprimer directement ou indirectement. Pour supprimer directement le type Dispose, appelez sa méthode dans un bloc try/catch. Pour la supprimer indirectement, utilisez une construction de langage telle que using (dans C#) ou Using (dans Visual Basic). Pour plus d’informations, consultez la section « Utilisation d’un objet qui implémente IDisposable » dans la rubrique de l’interface IDisposable.

Constructeurs

BinaryReader(Stream)

Initialise une nouvelle instance de la classe BinaryReader en fonction du flux spécifié et à l'aide de l'encodage UTF-8.

BinaryReader(Stream, Encoding)

Initialise une nouvelle instance de la classe BinaryReader en fonction du flux et l'encodage de caractères spécifiés.

BinaryReader(Stream, Encoding, Boolean)

Initialise une nouvelle instance de la classe BinaryReader en fonction du flux et de l'encodage de caractères spécifiés, et permet éventuellement de laisser le flux ouvert.

Propriétés

BaseStream

Expose l'accès au flux sous-jacent de l'élément BinaryReader.

Méthodes

Close()

Ferme le lecteur actuel et le flux sous-jacent.

Dispose()

Libère toutes les ressources utilisées par l'instance actuelle de la classe BinaryReader.

Dispose(Boolean)

Libère les ressources non managées utilisées par la classe BinaryReader et libère éventuellement les ressources managées.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
FillBuffer(Int32)

Remplit la mémoire tampon interne avec le nombre spécifié d'octets lus à partir du flux.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
PeekChar()

Retourne le prochain caractère disponible et n'avance pas la position de caractère ou d'octet.

Read()

Lit les caractères du flux sous-jacent et avance la position actuelle du flux conformément à la valeur Encoding utilisée et au caractère spécifique en cours de lecture dans le flux.

Read(Byte[], Int32, Int32)

Lit le nombre spécifié d'octets dans le flux, en commençant à un point spécifié dans le tableau d'octets.

Read(Char[], Int32, Int32)

Lit le nombre spécifié de caractères du flux, en commençant à un point spécifié dans le tableau de caractères.

Read(Span<Byte>)

Lit une séquence d'octets dans le flux actuel et avance la position dans le flux du nombre d'octets lus.

Read(Span<Char>)

Lit, à partir du flux actuel, le même nombre de caractères que la longueur de la mémoire tampon fournie, les écrit dans la mémoire tampon fournie et avance la position actuelle conformément à la valeur Encoding utilisée et au caractère spécifique en cours de lecture dans le flux.

Read7BitEncodedInt()

Lit un entier 32 bits au format compressé.

Read7BitEncodedInt64()

Lit 7 bits à la fois d’un nombre.

ReadBoolean()

Lit une valeur Boolean à partir du flux actuel et avance la position actuelle du flux d'un octet.

ReadByte()

Lit l'octet suivant du flux actuel et avance la position actuelle du flux d'un octet.

ReadBytes(Int32)

Lit le nombre spécifié d'octets du flux actuel dans un tableau d'octets et avance la position actuelle de ce nombre d'octets.

ReadChar()

Lit le caractère suivant dans le flux actuel et avance la position actuelle du flux conformément à la valeur Encoding utilisée et du caractère spécifique en cours de lecture dans le flux.

ReadChars(Int32)

Lit le nombre spécifié de caractères dans le flux actuel, retourne les données dans un tableau de caractères et avance la position actuelle conformément à la valeur Encoding utilisée et au caractère spécifique en cours de lecture dans le flux.

ReadDecimal()

Lit une valeur décimale dans le flux actuel et avance la position actuelle du flux de 16 octets.

ReadDouble()

Lit une valeur à virgule flottante de 8 octets dans le flux actuel et avance la position actuelle du flux de huit octets.

ReadHalf()

Lit une valeur à virgule flottante de 2 octets à partir du flux actuel et avance la position actuelle du flux de deux octets.

ReadInt16()

Lit un entier signé de 2 octets dans le flux actuel et avance la position actuelle du flux de deux octets.

ReadInt32()

Lit un entier signé de 4 octets dans le flux actuel et avance la position actuelle du flux de quatre octets.

ReadInt64()

Lit un entier signé de 8 octets dans le flux actuel et avance la position actuelle du flux de huit octets.

ReadSByte()

Lit un octet signé dans ce flux et avance la position actuelle du flux d'un octet.

ReadSingle()

Lit une valeur à virgule flottante de 4 octets dans le flux actuel et avance la position actuelle du flux de quatre octets.

ReadString()

Lit une chaîne dans le flux actuel. La chaîne est précédée de la longueur, encodée sous la forme d'un entier de sept bits à la fois.

ReadUInt16()

Lit un entier non signé de 2 octets dans le flux actuel à l'aide de l’encodage Little Endian et avance la position du flux de deux octets.

ReadUInt32()

Lit un entier non signé de 4 octets dans le flux actuel et avance la position du flux de quatre octets.

ReadUInt64()

Lit un entier non signé de 8 octets dans le flux actuel et avance la position du flux de huit octets.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

IDisposable.Dispose()

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code.

Libère le sauf BaseStream configuration contraire par BinaryReader(Stream, Encoding, Boolean).

S’applique à

Voir aussi