방법: 새로 만든 데이터 파일 읽기 및 쓰기How to: Read and write to a newly created data file

System.IO.BinaryWriterSystem.IO.BinaryReader 클래스는 문자열이 아닌 데이터를 쓰고 읽는 데 사용됩니다.The System.IO.BinaryWriter and System.IO.BinaryReader classes are used for writing and reading data other than character strings. 다음 예제에서는 빈 파일 스트림을 만들어서 여기에 데이터를 쓰고 데이터를 읽는 방법을 보여줍니다.The following example shows how to create an empty file stream, write data to it, and read data from it.

이 예제는 현재 디렉터리에 Test.data라는 데이터 파일을 만들고, 연결된 BinaryWriterBinaryReader 개체를 만들고, BinaryWriter 개체를 사용하여 Test.data에 0부터 10까지 정수를 씁니다. 이렇게 하면 파일 포인터가 파일 끝에 옵니다.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. BinaryReader 개체는 파일 포인터를 다시 원점으로 설정하고, 지정된 내용을 읽습니다.The BinaryReader object then sets the file pointer back to the origin and reads out the specified content.

참고

현재 디렉터리에 Test.data가 이미 있는 경우, IOException 예외가 throw됩니다.If Test.data already exists in the current directory, an IOException exception is thrown. 예외를 throw하지 않고 항상 새 파일을 만들려면 FileMode.CreateNew보다는 FileMode.Create 파일 모드 옵션을 사용합니다.Use the file mode option FileMode.Create rather than FileMode.CreateNew to always create a new file without throwing an exception.

Example

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.

참고 항목See also