Delen via


Procedure: lezen en schrijven naar een nieuw gemaakt gegevensbestand

De System.IO.BinaryWriter en System.IO.BinaryReader klassen worden gebruikt voor het schrijven en lezen van andere gegevens dan tekenreeksen. In het volgende voorbeeld ziet u hoe u een lege bestandsstroom maakt, gegevens naar het bestand schrijft en gegevens uit het bestand leest.

In het voorbeeld wordt een gegevensbestand met de naam Test.data gemaakt in de huidige map, worden de bijbehorende BinaryWriter en BinaryReader objecten gemaakt en wordt het BinaryWriter object gebruikt om de gehele getallen 0 tot en met 10 naar Test.data te schrijven, waardoor de bestandswijzer aan het einde van het bestand blijft staan. Het BinaryReader object stelt vervolgens de bestandswijzer weer in op de oorsprong en leest de opgegeven inhoud uit.

Notitie

Als Test.data al bestaat in de huidige map, wordt er een IOException uitzondering gegenereerd. Gebruik de optie FileMode.Create bestandsmodus in plaats FileMode.CreateNew van altijd een nieuw bestand te maken zonder een uitzondering te genereren.

Voorbeeld

using System;
using System.IO;

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

    public static void Main()
    {
        if (File.Exists(FILE_NAME))
        {
            Console.WriteLine($"{FILE_NAME} already exists!");
            return;
        }

        using (FileStream fs = new FileStream(FILE_NAME, FileMode.CreateNew))
        {
            using (BinaryWriter w = new BinaryWriter(fs))
            {
                for (int i = 0; i < 11; i++)
                {
                    w.Write(i);
                }
            }
        }

        using (FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read))
        {
            using (BinaryReader r = new BinaryReader(fs))
            {
                for (int i = 0; i < 11; i++)
                {
                    Console.WriteLine(r.ReadInt32());
                }
            }
        }
    }
}


// The example creates a file named "Test.data" and writes the integers 0 through 10 to it in binary format.
// It then writes the contents of Test.data to the console with each integer on a separate line.
Imports System.IO

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

    Public Shared Sub Main()
        If File.Exists(FILE_NAME) Then
            Console.WriteLine($"{FILE_NAME} already exists!")
            Return
        End If

        Using fs As New FileStream(FILE_NAME, FileMode.CreateNew)
            Using w As New BinaryWriter(fs)
                For i As Integer = 0 To 10
                    w.Write(i)
                Next
            End Using
        End Using

        Using fs As New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
            Using r As New BinaryReader(fs)
                For i As Integer = 0 To 10
                    Console.WriteLine(r.ReadInt32())
                Next
            End Using
        End Using
    End Sub
End Class

' The example creates a file named "Test.data" and writes the integers 0 through 10 to it in binary format.
' It then writes the contents of Test.data to the console with each integer on a separate line.

Zie ook