BinaryWriter Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zapisuje primitivní typy v binárním formátu do datového proudu a podporuje zápis řetězců v konkrétním kódování.
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
- Dědičnost
-
BinaryWriter
- Atributy
- Implementuje
Příklady
Následující příklad kódu ukazuje, jak uložit a načíst nastavení aplikace v souboru.
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
Poznámky
Třída BinaryWriter poskytuje metody, které zjednodušují zápis primitivních datových typů do datového proudu. Metodu Write můžete například použít k zápisu logické hodnoty do datového proudu jako jednobajtů. Třída zahrnuje metody zápisu, které podporují různé datové typy.
Když vytvoříte novou instanci BinaryWriter třídy, zadáte datový proud, do který chcete zapisovat, a volitelně určíte typ kódování a zda se má datový proud po odstranění objektu BinaryWriter ponechat otevřený. Pokud nezadáte typ kódování, použije se UTF-8.
Důležité
Tento typ implementuje IDisposable rozhraní. Po dokončení používání tohoto typu byste ho měli přímo nebo nepřímo odstranit. Pokud chcete odstranit typ přímo, zavolejte jeho Dispose metodu try
/catch
v bloku. Pokud ho chcete odstranit nepřímo, použijte konstruktor jazyka, například using
(v jazyce C#) nebo Using
(v jazyce Visual Basic). Další informace najdete v části "Použití objektu, který implementuje IDisposable" v IDisposable tématu rozhraní.
Odvozená třída může přepsat metody této třídy poskytnout jedinečné kódování znaků.
Konstruktory
BinaryWriter() |
Inicializuje novou instanci BinaryWriter třídy, která zapisuje do datového proudu. |
BinaryWriter(Stream) |
Inicializuje novou instanci BinaryWriter třídy na základě zadaného datového proudu a pomocí kódování UTF-8. |
BinaryWriter(Stream, Encoding) |
Inicializuje novou instanci BinaryWriter třídy na základě zadaného datového proudu a kódování znaků. |
BinaryWriter(Stream, Encoding, Boolean) |
Inicializuje novou instanci třídy na základě zadaného datového BinaryWriter proudu a kódování znaků a volitelně ponechá datový proud otevřený. |
Pole
Null |
Určuje bez záložního BinaryWriter úložiště. |
OutStream |
Uchovává podkladový datový proud. |
Vlastnosti
BaseStream |
Získá podkladový datový proud objektu BinaryWriter. |
Metody
Close() |
Zavře aktuální BinaryWriter a podkladový datový proud. |
Dispose() |
Uvolní všechny prostředky používané aktuální instancí BinaryWriter třídy. |
Dispose(Boolean) |
Uvolní nespravované prostředky používané BinaryWriter nástrojem a volitelně uvolní spravované prostředky. |
DisposeAsync() |
Asynchronně uvolní všechny prostředky používané aktuální instancí BinaryWriter třídy. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
Flush() |
Vymaže všechny vyrovnávací paměti pro aktuální zapisovač a způsobí zápis všech dat do vyrovnávací paměti do základního zařízení. |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
Seek(Int32, SeekOrigin) |
Nastaví pozici v aktuálním datovém proudu. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Write(Boolean) |
Zapíše hodnotu jednobajtů |
Write(Byte) |
Zapíše nepodepsaný bajt do aktuálního streamu a posune pozici streamu o jeden bajt. |
Write(Byte[]) |
Zapíše pole bajtů do podkladového datového proudu. |
Write(Byte[], Int32, Int32) |
Zapíše oblast pole bajtů do aktuálního datového proudu. |
Write(Char) |
Zapíše znak Unicode do aktuálního datového proudu a posune aktuální pozici datového proudu v souladu s použitým a konkrétními |
Write(Char[]) |
Zapíše pole znaků do aktuálního datového proudu a posune aktuální pozici datového proudu v souladu s použitým a konkrétními |
Write(Char[], Int32, Int32) |
Zapíše část pole znaků do aktuálního datového proudu a posune aktuální pozici datového proudu v souladu s použitým |
Write(Decimal) |
Zapíše desetinnou hodnotu do aktuálního datového proudu a posune pozici streamu o šestnáct bajtů. |
Write(Double) |
Zapíše osmibajtů hodnotu s plovoucí desetinou čárkou do aktuálního datového proudu a posune pozici streamu o osm bajtů. |
Write(Half) |
Zapíše hodnotu dvoubajtů s plovoucí desetinou čárkou do aktuálního datového proudu a posune pozici streamu o dva bajty. |
Write(Int16) |
Zapíše do aktuálního datového proudu celé číslo se dvěma bajty a posune pozici streamu o dva bajty. |
Write(Int32) |
Zapíše do aktuálního datového proudu celé číslo se 4 bajty a posune pozici streamu o čtyři bajty. |
Write(Int64) |
Zapíše do aktuálního datového proudu celé číslo s osmi bajty a posune pozici streamu o osm bajtů. |
Write(ReadOnlySpan<Byte>) |
Zapíše rozsah bajtů do aktuálního datového proudu. |
Write(ReadOnlySpan<Char>) |
Zapíše rozsah znaků do aktuálního datového proudu a posune aktuální pozici datového proudu v souladu s použitým a možná i konkrétními |
Write(SByte) |
Zapíše podepsaný bajt do aktuálního streamu a posune pozici streamu o jeden bajt. |
Write(Single) |
Zapíše hodnotu s plovoucí desetinou čárkou se čtyřmi bajty do aktuálního datového proudu a posune pozici streamu o čtyři bajty. |
Write(String) |
Zapíše do tohoto datového proudu řetězec s předponou délky v aktuálním kódování BinaryWritera posune aktuální pozici datového proudu v souladu s použitým kódováním a konkrétními znaky, které se zapisují do datového proudu. |
Write(UInt16) |
Zapíše do aktuálního datového proudu celé číslo bez znaménka se dvěma bajty a posune pozici datového proudu o dva bajty. |
Write(UInt32) |
Zapíše do aktuálního datového proudu celé číslo bez znaménka se čtyřmi bajty a posune pozici streamu o čtyři bajty. |
Write(UInt64) |
Zapíše celé číslo bez znaménka osmi bajtů do aktuálního datového proudu a posune pozici streamu o osm bajtů. |
Write7BitEncodedInt(Int32) |
Zapíše 32bitové celé číslo v komprimovaném formátu. |
Write7BitEncodedInt64(Int64) |
Zapíše číslo 7 bitů najednou. |
Explicitní implementace rozhraní
IDisposable.Dispose() |
Uvolní nespravované prostředky používané BinaryWriter nástrojem a volitelně uvolní spravované prostředky. |
Metody rozšíření
ConfigureAwait(IAsyncDisposable, Boolean) |
Konfiguruje, jak se provádí čekání na úlohy vrácené z asynchronního jednorázového použití. |
Platí pro
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro