Aracılığıyla paylaş


BinaryWriter Sınıf

Tanım

İkili dosyadaki ilkel türleri bir akışa yazar ve belirli bir kodlamada dize yazmayı destekler.

public ref class BinaryWriter : IDisposable
public ref class BinaryWriter : IAsyncDisposable, IDisposable
public class BinaryWriter : IDisposable
public class BinaryWriter : IAsyncDisposable, IDisposable
[System.Serializable]
public class BinaryWriter : IDisposable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryWriter : IDisposable
type BinaryWriter = class
    interface IDisposable
type BinaryWriter = class
    interface IAsyncDisposable
    interface IDisposable
[<System.Serializable>]
type BinaryWriter = class
    interface IDisposable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryWriter = class
    interface IDisposable
Public Class BinaryWriter
Implements IDisposable
Public Class BinaryWriter
Implements IAsyncDisposable, IDisposable
Devralma
BinaryWriter
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki kod örneği, uygulama ayarlarının bir dosyada nasıl depolanıp alınduğunu gösterir.

using System;
using System.IO;
using System.Text;

class ConsoleApplication
{
    const string fileName = "AppSettings.dat";

    static void Main()
    {
        WriteDefaultValues();
        DisplayValues();
    }

    public static void WriteDefaultValues()
    {
        using (var stream = File.Open(fileName, FileMode.Create))
        {
            using (var writer = new BinaryWriter(stream, Encoding.UTF8, false))
            {
                writer.Write(1.250F);
                writer.Write(@"c:\Temp");
                writer.Write(10);
                writer.Write(true);
            }
        }
    }

    public static void DisplayValues()
    {
        float aspectRatio;
        string tempDirectory;
        int autoSaveTime;
        bool showStatusBar;

        if (File.Exists(fileName))
        {
            using (var stream = File.Open(fileName, FileMode.Open))
            {
                using (var reader = new BinaryReader(stream, Encoding.UTF8, false))
                {
                    aspectRatio = reader.ReadSingle();
                    tempDirectory = reader.ReadString();
                    autoSaveTime = reader.ReadInt32();
                    showStatusBar = reader.ReadBoolean();
                }
            }

            Console.WriteLine("Aspect ratio set to: " + aspectRatio);
            Console.WriteLine("Temp directory is: " + tempDirectory);
            Console.WriteLine("Auto save time set to: " + autoSaveTime);
            Console.WriteLine("Show status bar: " + showStatusBar);
        }
    }
}
open System.IO
open System.Text

let fileName = "AppSettings.dat"

let writeDefaultValues () =
    use stream = File.Open(fileName, FileMode.Create)
    use writer = new BinaryWriter(stream, Encoding.UTF8, false)
    writer.Write 1.250F
    writer.Write @"c:\Temp"
    writer.Write 10
    writer.Write true

let displayValues () =
    if File.Exists fileName then
        use stream = File.Open(fileName, FileMode.Open)
        use reader = new BinaryReader(stream, Encoding.UTF8, false)
        let aspectRatio = reader.ReadSingle()
        let tempDirectory = reader.ReadString()
        let autoSaveTime = reader.ReadInt32()
        let showStatusBar = reader.ReadBoolean()

        printfn $"Aspect ratio set to: {aspectRatio}"
        printfn $"Temp directory is: {tempDirectory}"
        printfn $"Auto save time set to: {autoSaveTime}"
        printfn $"Show status bar: {showStatusBar}"

writeDefaultValues ()
displayValues ()
Imports System.IO

Module Module1
    Const fileName As String = "AppSettings.dat"

    Sub Main()
        WriteDefaultValues()
        DisplayValues()
    End Sub

    Sub WriteDefaultValues()
        Using writer As BinaryWriter = New BinaryWriter(File.Open(fileName, FileMode.Create))
            writer.Write(1.25F)
            writer.Write("c:\Temp")
            writer.Write(10)
            writer.Write(True)
        End Using
    End Sub

    Sub DisplayValues()
        Dim aspectRatio As Single
        Dim tempDirectory As String
        Dim autoSaveTime As Integer
        Dim showStatusBar As Boolean

        If (File.Exists(fileName)) Then

            Using reader As BinaryReader = New BinaryReader(File.Open(fileName, FileMode.Open))
                aspectRatio = reader.ReadSingle()
                tempDirectory = reader.ReadString()
                autoSaveTime = reader.ReadInt32()
                showStatusBar = reader.ReadBoolean()
            End Using

            Console.WriteLine("Aspect ratio set to: " & aspectRatio)
            Console.WriteLine("Temp directory is: " & tempDirectory)
            Console.WriteLine("Auto save time set to: " & autoSaveTime)
            Console.WriteLine("Show status bar: " & showStatusBar)
        End If
    End Sub

End Module

Açıklamalar

BinaryWriter sınıfı, bir akışa ilkel veri türleri yazmayı basitleştiren yöntemler sağlar. Örneğin Write yöntemini kullanarak akışa tek baytlık değer olarak Boole değeri yazabilirsiniz. sınıfı, farklı veri türlerini destekleyen yazma yöntemleri içerir.

BinaryWriter sınıfının yeni bir örneğini oluşturduğunuzda, yazılacak akışı sağlarsınız ve isteğe bağlı olarak kodlama türünü ve BinaryWriter nesnesini kullandıktan sonra akışın açık bırakılıp bırakılmayacağını belirtirsiniz. Kodlama türü belirtmezseniz UTF-8 kullanılır.

Önemli

Bu tür IDisposable arabirimini uygular. Türünü kullanmayı bitirdiğinizde, doğrudan veya dolaylı olarak atmalısınız. Türü doğrudan atmak için Dispose yöntemini bir try/catch bloğunda çağırın. Bunu dolaylı olarak atmak için using (C#'de) veya Using (Visual Basic'te) gibi bir dil yapısı kullanın. Daha fazla bilgi için IDisposable arabirimi konusunun "IDisposable Uygulayan Bir Nesne Kullanma" bölümüne bakın.

Türetilmiş bir sınıf, benzersiz karakter kodlamaları vermek için bu sınıfın yöntemlerini geçersiz kılabilir.

Oluşturucular

BinaryWriter()

Bir akışa yazan BinaryWriter sınıfının yeni bir örneğini başlatır.

BinaryWriter(Stream)

Belirtilen akışı temel alarak ve UTF-8 kodlamasını kullanarak BinaryWriter sınıfının yeni bir örneğini başlatır.

BinaryWriter(Stream, Encoding)

Belirtilen akışa ve karakter kodlamaya göre BinaryWriter sınıfının yeni bir örneğini başlatır.

BinaryWriter(Stream, Encoding, Boolean)

Belirtilen akış ve karakter kodlaması temelinde BinaryWriter sınıfının yeni bir örneğini başlatır ve isteğe bağlı olarak akışı açık bırakır.

Alanlar

Null

Yedekleme deposu olmayan bir BinaryWriter belirtir.

OutStream

Temel alınan akışı tutar.

Özellikler

BaseStream

BinaryWritertemel alınan akışını alır.

Yöntemler

Close()

Geçerli BinaryWriter ve temel alınan akışı kapatır.

Dispose()

BinaryWriter sınıfının geçerli örneği tarafından kullanılan tüm kaynakları serbest bırakır.

Dispose(Boolean)

BinaryWriter tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları serbest bırakır.

DisposeAsync()

BinaryWriter sınıfının geçerli örneği tarafından kullanılan tüm kaynakları zaman uyumsuz olarak serbest bırakır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
Flush()

Geçerli yazıcı için tüm arabellekleri temizler ve arabelleğe alınan verilerin temel alınan cihaza yazılmasına neden olur.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
Seek(Int32, SeekOrigin)

Geçerli akış içindeki konumu ayarlar.

ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)
Write(Boolean)

Geçerli akışa tek baytlık bir Boolean değer yazar; 0 false ve 1 truetemsil eder.

Write(Byte)

Geçerli akışa imzasız bir bayt yazar ve akış konumunu bir bayt ilerletir.

Write(Byte[])

Temel alınan akışa bir bayt dizisi yazar.

Write(Byte[], Int32, Int32)

Geçerli akışa bayt dizisinin bölgesini yazar.

Write(Char)

Geçerli akışa bir Unicode karakteri yazar ve kullanılan Encoding ve akışa yazılan belirli karakterlere göre akışın geçerli konumunu ilerletir.

Write(Char[])

Geçerli akışa bir karakter dizisi yazar ve kullanılan Encoding ve akışa yazılan belirli karakterlere göre akışın geçerli konumunu ilerletir.

Write(Char[], Int32, Int32)

Karakter dizisinin bir bölümünü geçerli akışa yazar ve kullanılan Encoding ve belki de akışa yazılan belirli karakterlere göre akışın geçerli konumunu ilerletir.

Write(Decimal)

Geçerli akışa ondalık değer yazar ve akış konumunu on altı bayt ilerletir.

Write(Double)

Geçerli akışa sekiz baytlık kayan nokta değeri yazar ve akış konumunu sekiz bayt ilerletir.

Write(Half)

Geçerli akışa iki baytlık kayan nokta değeri yazar ve akış konumunu iki bayt ilerletir.

Write(Int16)

Geçerli akışa iki baytlık imzalı bir tamsayı yazar ve akış konumunu iki bayt ilerletir.

Write(Int32)

Geçerli akışa dört baytlık imzalı bir tamsayı yazar ve akış konumunu dört bayt ilerletir.

Write(Int64)

Geçerli akışa sekiz bayt imzalı bir tamsayı yazar ve akış konumunu sekiz bayt ilerletir.

Write(ReadOnlySpan<Byte>)

Geçerli akışa bir bayt aralığı yazar.

Write(ReadOnlySpan<Char>)

Geçerli akışa bir karakter aralığı yazar ve kullanılan Encoding ve belki de akışa yazılan belirli karakterlere göre akışın geçerli konumunu ilerletir.

Write(SByte)

Geçerli akışa imzalı bir bayt yazar ve akış konumunu bir bayt ilerletir.

Write(Single)

Geçerli akışa dört baytlık kayan nokta değeri yazar ve akış konumunu dört bayt ilerletir.

Write(String)

BinaryWritergeçerli kodlamasında bu akışa uzunluk ön ekli bir dize yazar ve kullanılan kodlamaya ve akışa yazılan belirli karakterlere uygun olarak akışın geçerli konumunu ilerletir.

Write(UInt16)

Geçerli akışa iki baytlık işaretsiz bir tamsayı yazar ve akış konumunu iki bayt ilerletir.

Write(UInt32)

Geçerli akışa dört baytlık işaretsiz bir tamsayı yazar ve akış konumunu dört bayt ilerletir.

Write(UInt64)

Geçerli akışa sekiz baytlık işaretsiz bir tamsayı yazar ve akış konumunu sekiz bayt ilerletir.

Write7BitEncodedInt(Int32)

Sıkıştırılmış biçimde 32 bitlik bir tamsayı yazar.

Write7BitEncodedInt64(Int64)

Bir kerede 7 bitlik bir sayı yazar.

Belirtik Arabirim Kullanımları

IDisposable.Dispose()

BinaryWriter tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları serbest bırakır.

Uzantı Metotları

ConfigureAwait(IAsyncDisposable, Boolean)

Zaman uyumsuz bir atılabilir öğeden döndürülen görevlerde awaits işleminin nasıl gerçekleştirileceğini yapılandırılır.

Şunlara uygulanır

Ayrıca bkz.