Share via


Cara: Membaca dan menulis ke file data yang baru dibuat

Kelas System.IO.BinaryWriter dan System.IO.BinaryReader digunakan untuk menulis dan membaca data selain string karakter. Contoh berikut menunjukkan cara membuat aliran file kosong, menulis data ke sana, dan membaca data darinya.

Contoh membuat file data yang disebut Test.data di direktori saat ini, membuat objek BinaryWriter dan BinaryReader yang terkait, dan menggunakan objek BinaryWriter untuk menulis bilangan bulat 0 hingga 10 ke Test.data, yang meninggalkan pointer file di akhir file. Objek BinaryReader kemudian mengatur pointer file kembali ke asal dan membaca konten yang ditentukan.

Catatan

Jika Test.data sudah ada di direktori saat ini, pengecualian IOException akan dilemparkan. Gunakan opsi FileMode.Create mode file daripada FileMode.CreateNew untuk selalu membuat file baru tanpa melemparkan pengecualian.

Contoh

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.

Lihat juga