Partager via


Comment : lire et écrire dans un fichier de données créé récemment

Les classes BinaryWriter et BinaryReader sont utilisées pour écrire et lire des données, plutôt que des chaînes de caractères. L'exemple de code suivant montre comment écrire et lire les données dans un nouveau flux de fichier vide (Test.data). Après la création du fichier de données dans le répertoire actif, les classes BinaryWriter et BinaryReader associées sont créées, et la classe BinaryWriter permet d'écrire les entiers compris entre 0 et 10 dans Test.data, ce qui positionne le pointeur de fichier en fin de fichier. Après avoir repositionné le pointeur de fichier à son emplacement initial, la classe BinaryReader lit le contenu spécifié.

Exemple

Imports System
Imports System.IO

Class MyStream
    Private Const FILE_NAME As String = "Test.data"

    Public Shared Sub Main()
        ' Create the new, empty data file.
        If File.Exists(FILE_NAME) Then
            Console.WriteLine("{0} already exists!", FILE_NAME)
            Return
        End If
        Using fs As New FileStream(FILE_NAME, FileMode.CreateNew)
            ' Create the writer for data.
            Using w As New BinaryWriter(fs)
                ' Write data to Test.data.
                For i As Integer = 0 To 10
                    w.Write(i)
                Next
            End Using
        End Using
        ' Create the reader for data.
        Using fs As New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
            Using r As New BinaryReader(fs)
                ' Read data from Test.data.
                For i As Integer = 0 To 10
                    Console.WriteLine(r.ReadInt32())
                Next
            End Using
        End Using
    End Sub
End Class
using System;
using System.IO;

class MyStream
{
    private const string FILE_NAME = "Test.data";

    public static void Main()
    {
        // Create the new, empty data file.
        if (File.Exists(FILE_NAME))
        {
            Console.WriteLine("{0} already exists!", FILE_NAME);
            return;
        }
        using (FileStream fs = new FileStream(FILE_NAME, FileMode.CreateNew))
        {
            // Create the writer for data.
            using (BinaryWriter w = new BinaryWriter(fs))
            {
                // Write data to Test.data.
                for (int i = 0; i < 11; i++)
                {
                    w.Write(i);
                }
            }
        }
        // Create the reader for data.
        using (FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read))
        {
            using (BinaryReader r = new BinaryReader(fs))
            {
                // Read data from Test.data.
                for (int i = 0; i < 11; i++)
                {
                    Console.WriteLine(r.ReadInt32());
                }
            }
        }
    }
}
using namespace System;
using namespace System::IO;

ref class MyStream
{
private:
    static String^ FILE_NAME = "Test.data";

public:
    static void Main()
    {
        // Create the new, empty data file.
        if (File::Exists(FILE_NAME))
        {
            Console::WriteLine("{0} already exists!", FILE_NAME);
            return;
        }
        FileStream^ fs = gcnew FileStream(FILE_NAME, FileMode::CreateNew);
        // Create the writer for data.
        BinaryWriter^ w = gcnew BinaryWriter(fs);
        // Write data to Test.data.
        for (int i = 0; i < 11; i++)
        {
            w->Write(i);
        }
        w->Close();
        fs->Close();
        // Create the reader for data.
        fs = gcnew FileStream(FILE_NAME, FileMode::Open, FileAccess::Read);
        BinaryReader^ r = gcnew BinaryReader(fs);
        // Read data from Test.data.
        for (int i = 0; i < 11; i++)
        {
            Console::WriteLine(r->ReadInt32());
        }
        fs->Close();
    }
};

int main()
{
    MyStream::Main();
}

Programmation fiable

Si Test.data existe déjà dans le répertoire actif, une exception IOException est levée. Utilisez FileMode.Create pour créer un fichier sans lever d'exception IOException.

Voir aussi

Tâches

Comment : créer une liste des répertoires

Comment : ouvrir un fichier journal et y ajouter des éléments

Comment : lire du texte dans un fichier

Comment : écrire du texte dans un fichier

Comment : lire les caractères d'une chaîne

Comment : écrire des caractères dans une chaîne

Référence

BinaryReader

BinaryWriter

FileStream

FileStream.Seek

SeekOrigin

Concepts

E/S de fichier de base