BinaryReader Classe

Définition

Lit les types de données primitifs en tant que valeurs binaires dans 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 les 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 une instance de la BinaryReader classe, vous fournissez le flux à lire et spécifiez éventuellement le type d’encodage et indiquez s’il faut laisser le flux ouvert après avoir supprimé l’objet BinaryReader . 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, appelez sa Dispose méthode dans un try/catch bloc. Pour la supprimer indirectement, utilisez une construction de langage telle que using (en C#) ou Using (en Visual Basic). Pour plus d’informations, consultez la section « Utilisation d’un objet implémentant IDisposable » dans la rubrique d’interface IDisposable .

Constructeurs

Nom Description
BinaryReader(Stream, Encoding, Boolean)

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

BinaryReader(Stream, Encoding)

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

BinaryReader(Stream)

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

Propriétés

Nom Description
BaseStream

Expose l’accès au flux sous-jacent du BinaryReader.

Méthodes

Nom Description
Close()

Ferme le lecteur actuel et le flux sous-jacent.

Dispose()

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

Dispose(Boolean)

Libère les ressources non managées utilisées par la BinaryReader classe 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()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
PeekChar()

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

Read()

Lit les caractères du flux sous-jacent et avance la position actuelle du flux conformément au Encoding caractère utilisé et spécifique lu à partir du flux.

Read(Byte[], Int32, Int32)

Lit le nombre spécifié d’octets du flux, à partir d’un point spécifié dans le tableau d’octets.

Read(Char[], Int32, Int32)

Lit le nombre spécifié de caractères du flux, à partir d’un point spécifié dans le tableau de caractères.

Read(Span<Byte>)

Lit une séquence d’octets à partir du flux actuel et avance la position dans le flux en fonction 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 à l’usage Encoding et au caractère spécifique lu à partir du flux.

Read7BitEncodedInt()

Lit dans un entier 32 bits au format compressé.

ReadBoolean()

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

ReadByte()

Lit l’octet suivant à partir 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 par ce nombre d’octets.

ReadChar()

Lit le caractère suivant du flux actuel et avance la position actuelle du flux conformément à l’utilisation Encoding et au caractère spécifique lu à partir du flux.

ReadChars(Int32)

Lit le nombre spécifié de caractères du flux actuel, retourne les données d’un tableau de caractères et avance la position actuelle conformément à l’élément Encoding utilisé et au caractère spécifique lu à partir du flux.

ReadDecimal()

Lit une valeur décimale à partir du flux actuel et avance la position actuelle du flux de seize octets.

ReadDouble()

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

ReadInt16()

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

ReadInt32()

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

ReadInt64()

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

ReadSByte()

Lit un octet signé à partir de ce flux et avance la position actuelle du flux d’un octet.

ReadSingle()

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

ReadString()

Lit une chaîne à partir du 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 à partir du flux actuel à l’aide de l’encodage little-endian et avance la position du flux par deux octets.

ReadUInt32()

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

ReadUInt64()

Lit un entier non signé de 8 octets à partir du 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

Nom Description
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 l’sauf BaseStream configuration contraire par BinaryReader(Stream, Encoding, Boolean).

S’applique à

Voir aussi