방법: 새로 만든 데이터 파일 읽기 및 쓰기How to: Read and Write to a Newly Created Data File

BinaryWriterSystem.IO.BinaryReader 클래스는 문자열이 아닌 데이터를 쓰고 읽는 데 사용됩니다.The BinaryWriter and System.IO.BinaryReader classes are used for writing and reading data rather than character strings. 다음 예제에서는 Test.data라는 새로 만든 빈 파일 스트림에서 데이터를 읽거나 이 스트림에 데이터를 쓰는 방법을 보여 줍니다.The following example demonstrates how to write data to, and read data from, a new, empty file stream called Test.data. 현재 디렉터리에 데이터 파일을 만든 후 관련된 BinaryWriterBinaryReader 개체를 만들고 BinaryWriter 개체를 사용하여 0부터 10까지의 정수를 Test.data에 씁니다. 이렇게 하면 파일 포인터가 파일 끝에 옵니다.After creating the data file in the current directory, the associated BinaryWriter and BinaryReader objects are created, and the BinaryWriter object is used to write the integers 0 through 10 to Test.data, which leaves the file pointer at the end of the file. 파일 포인터를 다시 원점으로 설정하고 나면, BinaryReader 개체는 지정된 내용을 읽습니다.After setting the file pointer back to the origin, the BinaryReader object reads out the specified content.

Example

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();
}
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("{0} already exists!", FILE_NAME);
            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());
                }
            }
        }
    }
}
Imports System
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("{0} already exists!", FILE_NAME)
            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

강력한 프로그래밍Robust Programming

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

참고 항목See Also

BinaryReader
BinaryWriter
FileStream
FileStream.Seek
SeekOrigin
방법: 디렉터리 및 파일 열거How to: Enumerate Directories and Files
방법: 로그 파일 열기 및 추가How to: Open and Append to a Log File
방법: 파일의 텍스트 읽기How to: Read Text from a File
방법: 파일에 텍스트 쓰기How to: Write Text to a File
방법: 문자열에서 문자 읽기How to: Read Characters from a String
방법: 문자열에 문자 쓰기How to: Write Characters to a String
파일 및 스트림 I/OFile and Stream I-O