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
Poniższy przykład kodu demonstruje sposób przechowywania i pobierania ustawień 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. Możesz na przykład użyć Write metody , 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 BinaryWriter klasy należy podać strumień do zapisu i opcjonalnie określić typ kodowania i czy pozostawić strumień otwarty po usunięciu BinaryWriter obiektu. Jeśli nie określisz typu kodowania, jest używany kodowanie UTF-8.
Ważne
Ten typ implementuje IDisposable interfejs. Po zakończeniu korzystania z typu należy usunąć go bezpośrednio lub pośrednio. Aby bezpośrednio usunąć typ, wywołaj jego Dispose metodę try
/catch
w bloku. Aby usunąć go pośrednio, użyj 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 unikatowych znaków.
Konstruktory
BinaryWriter() |
Inicjuje BinaryWriter nowe wystąpienie klasy, która zapisuje w strumieniu. |
BinaryWriter(Stream) |
Inicjuje BinaryWriter nowe wystąpienie klasy na podstawie określonego strumienia i używa kodowania UTF-8. |
BinaryWriter(Stream, Encoding) |
Inicjuje BinaryWriter nowe wystąpienie klasy na podstawie określonego strumienia i kodowania znaków. |
BinaryWriter(Stream, Encoding, Boolean) |
Inicjuje BinaryWriter nowe wystąpienie klasy na podstawie określonego strumienia i kodowania znaków, a opcjonalnie pozostawia strumień otwarty. |
Pola
Null |
Określa bez BinaryWriter magazynu zapasowego. |
OutStream |
Przechowuje bazowy strumień. |
Właściwości
BaseStream |
Pobiera podstawowy strumień obiektu BinaryWriter. |
Metody
Close() |
Zamyka bieżący BinaryWriter i bazowy strumień. |
Dispose() |
Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy BinaryWriter. |
Dispose(Boolean) |
Zwalnia zasoby niezarządzane używane przez element BinaryWriter i opcjonalnie zwalnia zasoby zarządzane. |
DisposeAsync() |
Asynchronicznie zwalnia wszystkie zasoby używane przez bieżące wystąpienie BinaryWriter klasy. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
Flush() |
Czyści wszystkie bufory dla bieżącego składnika zapisywania i powoduje zapisanie wszystkich buforowanych danych na urządzeniu źródłowym. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (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 wartość jedno bajtową |
Write(Byte) |
Zapisuje niepodpisany bajt do bieżącego strumienia i przesuwa położenie strumienia o jeden bajt. |
Write(Byte[]) |
Zapisuje tablicę bajtów do bazowego strumienia. |
Write(Byte[], Int32, Int32) |
Zapisuje region tablicy bajtów w bieżącym strumieniu. |
Write(Char) |
Zapisuje znak Unicode do bieżącego strumienia i rozwija bieżącą pozycję strumienia zgodnie z używanymi |
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 rozwija bieżącą pozycję strumienia zgodnie z używanym |
Write(Decimal) |
Zapisuje wartość dziesiętną do bieżącego strumienia i przesuwa położenie strumienia o szesnaście bajtów. |
Write(Double) |
Zapisuje ośmiobajtową wartość zmiennoprzecinkową do bieżącego strumienia i przesuwa 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 przesuwa położenie strumienia o cztery bajty. |
Write(Int64) |
Zapisuje ośmiobajtową liczbę całkowitą ze znakiem 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żywanymi |
Write(SByte) |
Zapisuje podpisany bajt do bieżącego strumienia i przesuwa położenie strumienia o jeden bajt. |
Write(Single) |
Zapisuje wartość zmiennoprzecinkową czterobajtową do bieżącego strumienia i przesuwa położenie strumienia o cztery bajty. |
Write(String) |
Zapisuje ciąg z prefiksem długości do tego strumienia w bieżącym kodowaniu , i rozwija bieżącą pozycję strumienia zgodnie z używanym kodowaniem BinaryWriteri 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 pozycję strumienia o osiem bajtów. |
Write7BitEncodedInt(Int32) |
Zapisuje 32-bitową liczbę całkowitą w skompresowanym formacie. |
Write7BitEncodedInt64(Int64) |
Zapisuje liczbę 7 bitów naraz. |
Jawne implementacje interfejsu
IDisposable.Dispose() |
Zwalnia zasoby niezarządzane używane przez element BinaryWriter i opcjonalnie zwalnia zasoby zarządzane. |
Metody rozszerzania
ConfigureAwait(IAsyncDisposable, Boolean) |
Konfiguruje sposób oczekiwania na zadania zwracane z jednorazowego użytku asynchronicznego. |
Dotyczy
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla