Instrukcje: Odczyt i zapis w nowo utworzonym pliku danychHow to: Read and write to a newly created data file

Klasy System.IO.BinaryWriter i System.IO.BinaryReader są używane do zapisywania i odczytywania danych innych niż ciągi znaków.The System.IO.BinaryWriter and System.IO.BinaryReader classes are used for writing and reading data other than character strings. Poniższy przykład pokazuje, jak utworzyć pusty strumień plików, zapisać w nim dane i odczytać z niego dane.The following example shows how to create an empty file stream, write data to it, and read data from it.

Przykład tworzy plik danych o nazwie test. Data w bieżącym katalogu, tworzy skojarzone BinaryWriter i BinaryReader obiektów, a następnie używa obiektu BinaryWriter, aby napisać liczbę całkowitą od 0 do 10 w celu przetestowania. dane, co pozostawia wskaźnik pliku na końcu pliku.The example creates a data file called Test.data in the current directory, creates the associated BinaryWriter and BinaryReader objects, and uses the BinaryWriter object to write the integers 0 through 10 to Test.data, which leaves the file pointer at the end of the file. Obiekt BinaryReader następnie ustawia wskaźnik pliku z powrotem do źródła i odczytuje określoną zawartość.The BinaryReader object then sets the file pointer back to the origin and reads out the specified content.

Uwaga

Jeśli test. Data już istnieje w bieżącym katalogu, zostanie zgłoszony wyjątek IOException.If Test.data already exists in the current directory, an IOException exception is thrown. Użyj opcji Tryb plików FileMode.Create, a nie FileMode.CreateNew, aby zawsze tworzyć nowy plik bez zgłaszania wyjątku.Use the file mode option FileMode.Create rather than FileMode.CreateNew to always create a new file without throwing an exception.

PrzykładExample

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.

Zobacz takżeSee also