BinaryWriter Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menulis jenis primitif dalam biner ke aliran dan mendukung penulisan string dalam pengodean tertentu.
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
- Warisan
-
BinaryWriter
- Atribut
- Penerapan
Contoh
Contoh kode berikut menunjukkan cara menyimpan dan mengambil pengaturan aplikasi dalam file.
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
Keterangan
Kelas BinaryWriter menyediakan metode yang menyederhanakan penulisan jenis data primitif ke aliran. Misalnya, Anda dapat menggunakan metode Write untuk menulis nilai Boolean ke aliran sebagai nilai satu byte. Kelas ini mencakup metode tulis yang mendukung berbagai jenis data.
Saat Anda membuat instans baru kelas BinaryWriter, Anda menyediakan streaming untuk ditulis, dan secara opsional menentukan jenis pengodean dan apakah akan membiarkan aliran terbuka setelah membuang objek BinaryWriter. Jika Anda tidak menentukan jenis pengodean, UTF-8 akan digunakan.
Penting
Jenis ini mengimplementasikan antarmuka IDisposable. Setelah selesai menggunakan jenisnya, Anda harus membuangnya baik secara langsung maupun tidak langsung. Untuk membuang jenis secara langsung, panggil metode Dispose dalam blok try
/catch
. Untuk membuangnya secara tidak langsung, gunakan konstruksi bahasa seperti using
(dalam C#) atau Using
(di Visual Basic). Untuk informasi selengkapnya, lihat bagian "Menggunakan Objek yang Menerapkan IDisposable" di topik antarmuka IDisposable.
Kelas turunan dapat mengambil alih metode kelas ini untuk memberikan pengodean karakter yang unik.
Konstruktor
BinaryWriter() |
Menginisialisasi instans baru kelas BinaryWriter yang menulis ke aliran. |
BinaryWriter(Stream) |
Menginisialisasi instans baru kelas BinaryWriter berdasarkan aliran yang ditentukan dan menggunakan pengodean UTF-8. |
BinaryWriter(Stream, Encoding) |
Menginisialisasi instans baru kelas BinaryWriter berdasarkan aliran dan pengodean karakter yang ditentukan. |
BinaryWriter(Stream, Encoding, Boolean) |
Menginisialisasi instans baru kelas BinaryWriter berdasarkan aliran dan pengodean karakter yang ditentukan, dan secara opsional membiarkan aliran terbuka. |
Bidang
Null |
Menentukan BinaryWriter tanpa penyimpanan cadangan. |
OutStream |
Menyimpan aliran yang mendasar. |
Properti
BaseStream |
Mendapatkan aliran yang mendasar dari BinaryWriter. |
Metode
Close() |
Menutup BinaryWriter saat ini dan aliran yang mendasar. |
Dispose() |
Merilis semua sumber daya yang digunakan oleh instans kelas BinaryWriter saat ini. |
Dispose(Boolean) |
Merilis sumber daya yang tidak dikelola yang digunakan oleh BinaryWriter dan secara opsional merilis sumber daya terkelola. |
DisposeAsync() |
Secara asinkron merilis semua sumber daya yang digunakan oleh instans kelas BinaryWriter saat ini. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
Flush() |
Menghapus semua buffer untuk penulis saat ini dan menyebabkan data buffer ditulis ke perangkat yang mendasar. |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
Seek(Int32, SeekOrigin) |
Mengatur posisi dalam aliran saat ini. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Write(Boolean) |
Menulis nilai |
Write(Byte) |
Menulis byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran dengan satu byte. |
Write(Byte[]) |
Menulis array byte ke aliran yang mendasar. |
Write(Byte[], Int32, Int32) |
Menulis wilayah array byte ke aliran saat ini. |
Write(Char) |
Menulis karakter Unicode ke aliran saat ini dan memajukan posisi aliran saat ini sesuai dengan |
Write(Char[]) |
Menulis array karakter ke aliran saat ini dan memajukan posisi aliran saat ini sesuai dengan |
Write(Char[], Int32, Int32) |
Menulis bagian array karakter ke aliran saat ini, dan memajukan posisi aliran saat ini sesuai dengan |
Write(Decimal) |
Menulis nilai desimal ke aliran saat ini dan memajukan posisi aliran sebesar enam belas byte. |
Write(Double) |
Menulis nilai floating-point delapan byte ke aliran saat ini dan memajukan posisi aliran sebesar delapan byte. |
Write(Half) |
Menulis nilai floating-point dua byte ke aliran saat ini dan memajukan posisi aliran sebesar dua byte. |
Write(Int16) |
Menulis bilangan bulat bertanda tangan dua byte ke aliran saat ini dan memajukan posisi aliran sebesar dua byte. |
Write(Int32) |
Menulis bilangan bulat bertanda tangan empat byte ke aliran saat ini dan memajukan posisi aliran sebanyak empat byte. |
Write(Int64) |
Menulis bilangan bulat bertanda tangan delapan byte ke aliran saat ini dan memajukan posisi aliran sebesar delapan byte. |
Write(ReadOnlySpan<Byte>) |
Menulis rentang byte ke aliran saat ini. |
Write(ReadOnlySpan<Char>) |
Menulis rentang karakter ke aliran saat ini, dan memajukan posisi aliran saat ini sesuai dengan |
Write(SByte) |
Menulis byte yang ditandatangani ke aliran saat ini dan memajukan posisi aliran dengan satu byte. |
Write(Single) |
Menulis nilai floating-point empat byte ke aliran saat ini dan memajukan posisi aliran sebanyak empat byte. |
Write(String) |
Menulis string berawalan panjang ke aliran ini dalam pengodean BinaryWritersaat ini , dan memajukan posisi aliran saat ini sesuai dengan pengodean yang digunakan dan karakter tertentu yang ditulis ke aliran. |
Write(UInt16) |
Menulis bilangan bulat dua byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran sebesar dua byte. |
Write(UInt32) |
Menulis bilangan bulat empat byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran sebanyak empat byte. |
Write(UInt64) |
Menulis bilangan bulat delapan byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran sebesar delapan byte. |
Write7BitEncodedInt(Int32) |
Menulis bilangan bulat 32-bit dalam format terkompresi. |
Write7BitEncodedInt64(Int64) |
Menulis angka 7 bit pada satu waktu. |
Implementasi Antarmuka Eksplisit
IDisposable.Dispose() |
Merilis sumber daya yang tidak dikelola yang digunakan oleh BinaryWriter dan secara opsional merilis sumber daya terkelola. |
Metode Ekstensi
ConfigureAwait(IAsyncDisposable, Boolean) |
Mengonfigurasi bagaimana menunggu tugas yang dikembalikan dari asinkron sekali pakai akan dilakukan. |
Berlaku untuk
Lihat juga
- Encoding
- Cara: Membaca dan Menulis ke File Data yang Baru Dibuat
- I/O File dan Stream
- Cara: Membaca Teks dari File
- Cara: Menulis Teks ke File