이 설명서는 보관되지만 유지 되지 않습니다.

BinaryWriter 클래스

업데이트: 2007년 11월

기본 이진 형식을 스트림에 쓰고 특정 인코딩으로 된 문자열 쓰기를 지원합니다.

네임스페이스:  System.IO
어셈블리:  mscorlib(mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class BinaryWriter : IDisposable
/** @attribute SerializableAttribute */ 
/** @attribute ComVisibleAttribute(true) */
public class BinaryWriter implements IDisposable
public class BinaryWriter implements IDisposable

파생된 클래스에서 이 클래스의 메서드를 재정의하여 고유 문자 인코딩을 제공할 수 있습니다.

공통적인 I/O 작업 목록을 보려면 공통적인 I/O 작업을 참조하십시오.

다음 코드 예제에서는 응용 프로그램 설정을 파일에 저장하고 검색하는 방법을 보여 줍니다.

using System;
using System.IO;
using System.Security.Permissions;

class Test
{
    static void Main()
    {
        // Load application settings.
        AppSettings appSettings = new AppSettings();
        Console.WriteLine("App settings.\nAspect Ratio: {0}, " +
            "Lookup directory: {1},\nAuto save time: {2} minutes, " +
            "Show status bar: {3}\n",
            new Object[4]{appSettings.AspectRatio.ToString(),
            appSettings.LookupDir, appSettings.AutoSaveTime.ToString(),
            appSettings.ShowStatusBar.ToString()});

        // Change the settings.
        appSettings.AspectRatio   = 1.250F;
        appSettings.LookupDir     = @"C:\Temp";
        appSettings.AutoSaveTime  = 10;
        appSettings.ShowStatusBar = true;

        // Save the new settings.
        appSettings.Close();
    }
}

// Store and retrieve application settings.
class AppSettings
{
    const string fileName = "AppSettings#@@#.dat";
    float  aspectRatio;
    string lookupDir;
    int    autoSaveTime;
    bool   showStatusBar;

    public float AspectRatio
    {
        get{ return aspectRatio; }
        set{ aspectRatio = value; }
    }

    public string LookupDir
    {
        get{ return lookupDir; }
        set{ lookupDir = value; }
    }

    public int AutoSaveTime
    {
        get{ return autoSaveTime; }
        set{ autoSaveTime = value; }
    }

    public bool ShowStatusBar
    {
        get{ return showStatusBar; }
        set{ showStatusBar = value; }
    }

    public AppSettings()
    {
        // Create default application settings.
        aspectRatio   = 1.3333F;
        lookupDir     = @"C:\AppDirectory";
        autoSaveTime  = 30;
        showStatusBar = false;

        if(File.Exists(fileName))
        {
            BinaryReader binReader =
                new BinaryReader(File.Open(fileName, FileMode.Open));
            try
            {
                // If the file is not empty,
                // read the application settings.
                // Read 4 bytes into a buffer to
                // determine if the file is empty.
                byte[] testArray = new byte[3];
                int count = binReader.Read(testArray, 0, 3);

                if (count != 0)
                {
                    aspectRatio   = binReader.ReadSingle();
                    lookupDir     = binReader.ReadString();
                    autoSaveTime  = binReader.ReadInt32();
                    showStatusBar = binReader.ReadBoolean();
                }
            }

            // If the end of the stream is reached before reading
            // the four data values, ignore the error and use the
            // default settings for the remaining values.
            catch(EndOfStreamException e)
            {
                Console.WriteLine("{0} caught and ignored. " +
                    "Using default values.", e.GetType().Name);
            }
            finally
            {
                binReader.Close();
            }
        }

    }

    // Create a file and store the application settings.
    public void Close()
    {
        using(BinaryWriter binWriter =
            new BinaryWriter(File.Open(fileName, FileMode.Create)))
        {
            binWriter.Write(aspectRatio);
            binWriter.Write(lookupDir);
            binWriter.Write(autoSaveTime);
            binWriter.Write(showStatusBar);
        }
    }
}


import System.*;
import System.IO.*;
import System.Security.Permissions.*;

class Test
{
    public static void main(String[] args)
    {
        // Load application settings.
        AppSettings appSettings = new AppSettings();
        Console.WriteLine("App settings.\nAspect Ratio: {0}, "
            + "Lookup directory: {1},\nAuto save time: {2} minutes, "
            + "Show status bar: {3}\n",
            new Object[]{System.Convert.ToString(appSettings.get_AspectRatio()),
            appSettings.get_LookupDir(),
            System.Convert.ToString(appSettings.get_AutoSaveTime()),
            System.Convert.ToString(appSettings.get_ShowStatusBar())});

        // Change the settings.
        appSettings.set_AspectRatio(1.25F);
        appSettings.set_LookupDir("C:\\Temp");
        appSettings.set_AutoSaveTime ( 10);
        appSettings.set_ShowStatusBar( true);

        // Save the new settings.
        appSettings.Close();
    } //main
} //Test

// Store and retrieve application settings.
class AppSettings
{
    private String fileName = "AppSettings#@@#.dat";
    private float aspectRatio;
    private String lookupDir;
    private int autoSaveTime;
    private boolean showStatusBar;

    /** @property
     */
    public float get_AspectRatio()
    {
        return aspectRatio ;
    }//get_AspectRatio

    /** @property
     */
    public void set_AspectRatio ( float value )
    {
        aspectRatio = value;
    }//set_AspectRatio

    /** @property
     */
    public String get_LookupDir()
    {
        return lookupDir ;
    }//get_LookupDir

    /** @property
     */
    public void set_LookupDir ( String value )
    {
        lookupDir = value;
    }//set_LookupDir

    /** @property
     */
    public int get_AutoSaveTime()
    {
        return autoSaveTime ;
    }//get_AutoSaveTime

    /** @property
     */
    public void set_AutoSaveTime ( int value )
    {
        autoSaveTime = value;
    }//set_AutoSaveTime

    /** @property
     */
    public boolean get_ShowStatusBar()
    {
        return showStatusBar ;
    }//get_ShowStatusBar

    /** @property
     */
    public void set_ShowStatusBar ( boolean value )
    {
        showStatusBar = value;
    }//set_ShowStatusBar

    public AppSettings()
    {
        // Create default application settings.
        aspectRatio = 1.3333F;
        lookupDir = "C:\\AppDirectory";
        autoSaveTime = 30;
        showStatusBar = false;

        if ( File.Exists(fileName) ) {
            BinaryReader binReader =
                new BinaryReader(File.Open(fileName, FileMode.Open));
            try {

				// If the file is not empty,
				// read the application settings.
				// Read 4 bytes into a buffer to
				// determine if the file is empty.
				ubyte[] testArray = new ubyte[3];
				int count = binReader.Read(testArray, 0, 3);
				if (count != 0)
				{
                    aspectRatio = binReader.ReadSingle();
                    lookupDir = binReader.ReadString();
                    autoSaveTime = binReader.ReadInt32();
                    showStatusBar = binReader.ReadBoolean();
                }
            }

            // If the end of the stream is reached before reading
            // the four data values, ignore the error and use the
            // default settings for the remaining values.
            catch(EndOfStreamException e) {
                Console.WriteLine("{0} caught and ignored. "
                    + "Using default values.", e.GetType().get_Name());
            }
            finally {
                binReader.Close();
            }
        }
    } //AppSettings

    // Create a file and store the application settings.
    public void Close()
    {
        BinaryWriter binWriter =
            new BinaryWriter(File.Open(fileName, FileMode.Create));
        try {
            binWriter.Write(aspectRatio);
            binWriter.Write(lookupDir);
            binWriter.Write(autoSaveTime);
            binWriter.Write(showStatusBar);
        }
        finally {
            if ( binWriter != null ) {
                binWriter= null;
            }
        }
    } //Close
} //AppSettings


System.Object
  System.IO.BinaryWriter

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

.NET Framework

3.5, 3.0, 2.0, 1.1, 1.0에서 지원

.NET Compact Framework

3.5, 2.0, 1.0에서 지원

XNA Framework

2.0, 1.0에서 지원
표시: