Sdílet prostřednictvím


Postupy: Čtení a zápis do nově vytvořeného datového souboru

Třídy BinaryWriter a BinaryReader se spíše používají pro zapisování a čtení dat než řetězců znaků. Následující příklad kódu ukazuje zapisování dat do a čtení dat z nového prázdného souboru datového proudu (Test.data). Po vytvoření datového souboru v aktuálním adresáři je vytvořen přidružený BinaryWriter a BinaryReader a BinaryWriter je použit k zápisu celých čísel od 0 do 10 do Test.data, který ponechá ukazatel souboru na konci souboru. Po nastavení ukazatele souboru zpět na začátek, BinaryReader přečte zadaný obsah.

Příklad

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();
}

Robustní programování

Pokud Test.data již existuje v aktuálním adresáři, je vyvolána IOException. Vždy použijte FileMode.Create pro vytvoření nového souboru bez vyvolání IOException.

Viz také

Úkoly

Postupy: Vytvořit výpis adresáře

Postupy: Otevření a přidávání do souboru s výpisem

Postupy: Čtení textu ze souboru

Postupy: Zapsat text do souboru

Postupy: Číst znaky z řetězce

Postupy: Zapsat znaky do řetězce

Odkaz

BinaryReader

BinaryWriter

FileStream

FileStream.Seek

SeekOrigin

Koncepty

Základní vstupně-výstupní operace se soubory