BinaryWriter Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zapisuje typy pierwotne w pliku binarnym do strumienia i obsługuje zapisywanie ciągów w określonym kodowaniu.
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
- Dziedziczenie
-
BinaryWriter
- Atrybuty
- Implementuje
Przykłady
W poniższym przykładzie kodu pokazano, jak przechowywać i pobierać ustawienia aplikacji w pliku.
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
Uwagi
Klasa BinaryWriter udostępnia metody upraszczające zapisywanie pierwotnych typów danych w strumieniu. Na przykład możesz użyć metody Write, aby zapisać wartość logiczną w strumieniu jako wartość jedno bajtową. Klasa zawiera metody zapisu, które obsługują różne typy danych.
Podczas tworzenia nowego wystąpienia klasy BinaryWriter należy podać strumień do zapisu i opcjonalnie określić typ kodowania oraz czy strumień zostanie otwarty po usunięciu obiektu BinaryWriter. Jeśli nie określisz typu kodowania, jest używany kodowanie UTF-8.
Ważny
Ten typ implementuje interfejs IDisposable. Po zakończeniu korzystania z typu należy usunąć go bezpośrednio lub pośrednio. Aby usunąć typ bezpośrednio, wywołaj metodę Dispose w bloku try
/catch
. Aby usunąć go pośrednio, należy użyć konstrukcji języka, takiej jak using
(w języku C#) lub Using
(w Visual Basic). Aby uzyskać więcej informacji, zobacz sekcję "Using an Object that Implements IDisposable" (Używanie obiektu implementujące interfejs IDisposable) w temacie interfejsu IDisposable.
Klasa pochodna może zastąpić metody tej klasy, aby nadać kodowanie znaków unikatowych.
Konstruktory
BinaryWriter() |
Inicjuje nowe wystąpienie klasy BinaryWriter, która zapisuje w strumieniu. |
BinaryWriter(Stream) |
Inicjuje nowe wystąpienie klasy BinaryWriter na podstawie określonego strumienia i przy użyciu kodowania UTF-8. |
BinaryWriter(Stream, Encoding) |
Inicjuje nowe wystąpienie klasy BinaryWriter na podstawie określonego strumienia i kodowania znaków. |
BinaryWriter(Stream, Encoding, Boolean) |
Inicjuje nowe wystąpienie klasy BinaryWriter na podstawie określonego strumienia i kodowania znaków, a opcjonalnie pozostawia otwarty strumień. |
Pola
Null |
Określa BinaryWriter bez magazynu zapasowego. |
OutStream |
Przechowuje strumień bazowy. |
Właściwości
BaseStream |
Pobiera podstawowy strumień BinaryWriter. |
Metody
Close() |
Zamyka bieżące BinaryWriter i bazowy strumień. |
Dispose() |
Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy BinaryWriter. |
Dispose(Boolean) |
Zwalnia niezarządzane zasoby używane przez BinaryWriter i opcjonalnie zwalnia zarządzane zasoby. |
DisposeAsync() |
Asynchronicznie zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy BinaryWriter. |
Equals(Object) |
Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object) |
Flush() |
Czyści wszystkie dla bieżącego modułu zapisywania i powoduje zapisanie wszystkich buforowanych danych na urządzeniu bazowym. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
Seek(Int32, SeekOrigin) |
Ustawia położenie w bieżącym strumieniu. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Write(Boolean) |
Zapisuje jedno bajtową wartość |
Write(Byte) |
Zapisuje niepodpisany bajt do bieżącego strumienia i rozwija pozycję strumienia według jednego bajtu. |
Write(Byte[]) |
Zapisuje tablicę bajtów w strumieniu bazowym. |
Write(Byte[], Int32, Int32) |
Zapisuje region tablicy bajtów w bieżącym strumieniu. |
Write(Char) |
Zapisuje znak Unicode w bieżącym strumieniu i przechodzi bieżącą pozycję strumienia zgodnie z |
Write(Char[]) |
Zapisuje tablicę znaków w bieżącym strumieniu i rozwija bieżącą pozycję strumienia zgodnie z używanymi |
Write(Char[], Int32, Int32) |
Zapisuje sekcję tablicy znaków w bieżącym strumieniu i przechodzi bieżącą pozycję strumienia zgodnie z używanymi |
Write(Decimal) |
Zapisuje wartość dziesiętną do bieżącego strumienia i rozwija pozycję strumienia o szesnaście bajtów. |
Write(Double) |
Zapisuje wartość zmiennoprzecinkową ośmiu bajtów do bieżącego strumienia i zwiększa położenie strumienia o osiem bajtów. |
Write(Half) |
Zapisuje wartość zmiennoprzecinkową dwubajtową do bieżącego strumienia i przesuwa położenie strumienia o dwa bajty. |
Write(Int16) |
Zapisuje dwubajtową liczbę całkowitą ze znakiem do bieżącego strumienia i przesuwa położenie strumienia o dwa bajty. |
Write(Int32) |
Zapisuje czterobajtową liczbę całkowitą ze znakiem do bieżącego strumienia i rozwija położenie strumienia o cztery bajty. |
Write(Int64) |
Zapisuje liczbę całkowitą ze znakiem ośmiu bajtów do bieżącego strumienia i rozwija pozycję strumienia o osiem bajtów. |
Write(ReadOnlySpan<Byte>) |
Zapisuje zakres bajtów w bieżącym strumieniu. |
Write(ReadOnlySpan<Char>) |
Zapisuje zakres znaków w bieżącym strumieniu i rozwija bieżącą pozycję strumienia zgodnie z używanym |
Write(SByte) |
Zapisuje podpisany bajt do bieżącego strumienia i rozwija pozycję strumienia według jednego bajtu. |
Write(Single) |
Zapisuje wartość zmiennoprzecinkową z czterema bajtami do bieżącego strumienia i rozwija położenie strumienia o cztery bajty. |
Write(String) |
Zapisuje ciąg z prefiksem długości do tego strumienia w bieżącym kodowaniu BinaryWriteri przechodzi bieżącą pozycję strumienia zgodnie z używanym kodowaniem i określonymi znakami zapisywanymi w strumieniu. |
Write(UInt16) |
Zapisuje dwubajtową liczbę całkowitą bez znaku do bieżącego strumienia i przesuwa położenie strumienia o dwa bajty. |
Write(UInt32) |
Zapisuje czterobajtową liczbę całkowitą bez znaku do bieżącego strumienia i przesuwa położenie strumienia o cztery bajty. |
Write(UInt64) |
Zapisuje ośmiobajtową liczbę całkowitą bez znaku do bieżącego strumienia i rozwija położenie strumienia o osiem bajtów. |
Write7BitEncodedInt(Int32) |
Zapisuje 32-bitową liczbę całkowitą w formacie skompresowanym. |
Write7BitEncodedInt64(Int64) |
Zapisuje liczbę 7 bitów naraz. |
Jawne implementacje interfejsu
IDisposable.Dispose() |
Zwalnia niezarządzane zasoby używane przez BinaryWriter i opcjonalnie zwalnia zarządzane zasoby. |
Metody rozszerzania
ConfigureAwait(IAsyncDisposable, Boolean) |
Konfiguruje, w jaki sposób będą wykonywane oczekiwania na zadania zwrócone z asynchronicznego jednorazowego użytku. |