BinaryWriter.Write Metode
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 nilai ke aliran saat ini.
Overload
Write(Char[], Int32, Int32) |
Menulis bagian array karakter ke aliran saat ini, dan memajukan posisi aliran saat ini sesuai dengan |
Write(Byte[], Int32, Int32) |
Menulis wilayah array byte ke aliran saat ini. |
Write(UInt64) |
Menulis bilangan bulat delapan byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran sebesar delapan byte. |
Write(UInt32) |
Menulis bilangan bulat empat byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran sebesar empat byte. |
Write(UInt16) |
Menulis bilangan bulat dua byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran sebesar dua byte. |
Write(String) |
Menulis string awalan panjang ke aliran ini dalam pengodean saat ini dari BinaryWriter, dan memajukan posisi aliran saat ini sesuai dengan pengodean yang digunakan dan karakter tertentu yang ditulis ke aliran. |
Write(Single) |
Menulis nilai floating-point empat byte ke aliran saat ini dan memajukan posisi aliran sebesar empat byte. |
Write(SByte) |
Menulis byte yang ditandatangani ke aliran saat ini dan memajukan posisi aliran dengan satu byte. |
Write(ReadOnlySpan<Char>) |
Menulis rentang karakter ke aliran saat ini, dan memajukan posisi aliran saat ini sesuai dengan |
Write(ReadOnlySpan<Byte>) |
Menulis rentang byte ke aliran saat ini. |
Write(Int64) |
Menulis bilangan bulat bertanda delapan byte ke aliran saat ini dan memajukan posisi aliran sebesar delapan byte. |
Write(Char[]) |
Menulis array karakter ke aliran saat ini dan memajukan posisi aliran saat ini sesuai dengan karakter yang |
Write(Int16) |
Menulis bilangan bulat bertanda tangan dua byte ke aliran saat ini dan memajukan posisi aliran sebesar dua byte. |
Write(Half) |
Menulis nilai floating-point dua byte ke aliran saat ini dan memajukan posisi aliran sebesar dua byte. |
Write(Double) |
Menulis nilai floating-point delapan byte ke aliran saat ini dan memajukan posisi aliran sebesar delapan byte. |
Write(Decimal) |
Menulis nilai desimal ke aliran saat ini dan memajukan posisi aliran sebesar enam belas byte. |
Write(Char) |
Menulis karakter Unicode ke aliran saat ini dan memajukan posisi aliran saat ini sesuai dengan karakter yang |
Write(Byte[]) |
Menulis array byte ke aliran yang mendasar. |
Write(Byte) |
Menulis byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran dengan satu byte. |
Write(Boolean) |
Menulis nilai satu byte |
Write(Int32) |
Menulis bilangan bulat bertanda empat byte ke aliran saat ini dan memajukan posisi aliran sebesar empat byte. |
Write(Char[], Int32, Int32)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis bagian array karakter ke aliran saat ini, dan memajukan posisi aliran saat ini sesuai dengan Encoding
yang digunakan dan mungkin karakter tertentu yang ditulis ke aliran.
public:
virtual void Write(cli::array <char> ^ chars, int index, int count);
public virtual void Write (char[] chars, int index, int count);
abstract member Write : char[] * int * int -> unit
override this.Write : char[] * int * int -> unit
Public Overridable Sub Write (chars As Char(), index As Integer, count As Integer)
Parameter
- chars
- Char[]
Array karakter yang berisi data untuk ditulis.
- index
- Int32
Indeks karakter pertama yang dibaca dari chars
dan untuk menulis ke aliran.
- count
- Int32
Jumlah karakter yang akan dibaca dari chars
dan untuk ditulis ke aliran.
Pengecualian
Panjang buffer minus index
kurang dari count
.
chars
adalah null
.
index
atau count
negatif.
Terjadi kesalahan I/O.
Aliran ditutup.
Contoh
Contoh kode berikut menunjukkan cara membaca dan menulis data menggunakan memori sebagai penyimpanan cadangan.
using namespace System;
using namespace System::IO;
int main()
{
array<Char>^invalidPathChars = Path::InvalidPathChars;
MemoryStream^ memStream = gcnew MemoryStream;
BinaryWriter^ binWriter = gcnew BinaryWriter( memStream );
// Write to memory.
binWriter->Write( "Invalid file path characters are: " );
binWriter->Write( Path::InvalidPathChars, 0, Path::InvalidPathChars->Length );
// Create the reader using the same MemoryStream
// as used with the writer.
BinaryReader^ binReader = gcnew BinaryReader( memStream );
// Set Position to the beginning of the stream.
binReader->BaseStream->Position = 0;
// Read the data from memory and write it to the console.
Console::Write( binReader->ReadString() );
int arraySize = (int)(memStream->Length - memStream->Position);
array<Char>^memoryData = gcnew array<Char>(arraySize);
binReader->Read( memoryData, 0, arraySize );
Console::WriteLine( memoryData );
}
using System;
using System.IO;
class BinaryRW
{
static void Main()
{
char[] invalidPathChars = Path.InvalidPathChars;
MemoryStream memStream = new MemoryStream();
BinaryWriter binWriter = new BinaryWriter(memStream);
// Write to memory.
binWriter.Write("Invalid file path characters are: ");
binWriter.Write(
Path.InvalidPathChars, 0, Path.InvalidPathChars.Length);
// Create the reader using the same MemoryStream
// as used with the writer.
BinaryReader binReader = new BinaryReader(memStream);
// Set Position to the beginning of the stream.
memStream.Position = 0;
// Read the data from memory and write it to the console.
Console.Write(binReader.ReadString());
int arraySize = (int)(memStream.Length - memStream.Position);
char[] memoryData = new char[arraySize];
binReader.Read(memoryData, 0, arraySize);
Console.WriteLine(memoryData);
}
}
open System.IO
let invalidPathChars = Path.GetInvalidPathChars()
let memStream = new MemoryStream()
let binWriter = new BinaryWriter(memStream)
// Write to memory.
binWriter.Write "Invalid file path characters are: "
binWriter.Write(invalidPathChars, 0, invalidPathChars.Length)
// Create the reader using the same MemoryStream
// as used with the writer.
let binReader = new BinaryReader(memStream)
// Set Position to the beginning of the stream.
memStream.Position <- 0
// Read the data from memory and write it to the console.
printf $"{binReader.ReadString()}"
let arraySize = memStream.Length - memStream.Position |> int
let memoryData = Array.zeroCreate<char> arraySize
binReader.Read(memoryData, 0, arraySize) |> ignore
printfn $"{memoryData}"
Imports System.IO
Public Class BinaryRW
Shared Sub Main()
Dim invalidPathChars() As Char = Path.InvalidPathChars
Dim memStream As new MemoryStream()
Dim binWriter As New BinaryWriter(memStream)
' Write to memory.
binWriter.Write("Invalid file path characters are: ")
binWriter.Write(Path.InvalidPathChars, 0, _
Path.InvalidPathChars.Length)
' Create the reader using the same MemoryStream
' as used with the writer.
Dim binReader As New BinaryReader(memStream)
' Set Position to the beginning of the stream.
memStream.Position = 0
' Read the data from memory and write it to the console.
Console.Write(binReader.ReadString())
Dim upperBound As Integer = _
CInt(memStream.Length - memStream.Position) - 1
Dim memoryData(upperBound) As Char
binReader.Read(memoryData, 0, upperBound)
Console.WriteLine(memoryData)
End Sub
End Class
Keterangan
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(Byte[], Int32, Int32)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis wilayah array byte ke aliran saat ini.
public:
virtual void Write(cli::array <System::Byte> ^ buffer, int index, int count);
public virtual void Write (byte[] buffer, int index, int count);
abstract member Write : byte[] * int * int -> unit
override this.Write : byte[] * int * int -> unit
Public Overridable Sub Write (buffer As Byte(), index As Integer, count As Integer)
Parameter
- buffer
- Byte[]
Array byte yang berisi data untuk ditulis.
- index
- Int32
Indeks byte pertama yang dibaca dari buffer
dan untuk menulis ke aliran.
- count
- Int32
Jumlah byte yang akan dibaca dari buffer
dan untuk ditulis ke aliran.
Pengecualian
Panjang buffer minus index
kurang dari count
.
buffer
adalah null
.
index
atau count
negatif.
Terjadi kesalahan I/O.
Aliran ditutup.
Contoh
Contoh kode berikut menunjukkan cara menulis data biner menggunakan memori sebagai penyimpanan cadangan, lalu memverifikasi bahwa data ditulis dengan benar.
using System;
using System.IO;
namespace BinaryRW
{
class Program
{
static void Main(string[] args)
{
const int arrayLength = 1000;
byte[] dataArray = new byte[arrayLength];
byte[] verifyArray = new byte[arrayLength];
new Random().NextBytes(dataArray);
using (BinaryWriter binWriter = new BinaryWriter(new MemoryStream()))
{
Console.WriteLine("Writing the data.");
binWriter.Write(dataArray, 0, arrayLength);
using (BinaryReader binReader = new BinaryReader(binWriter.BaseStream))
{
binReader.BaseStream.Position = 0;
if (binReader.Read(verifyArray, 0, arrayLength) != arrayLength)
{
Console.WriteLine("Error writing the data.");
return;
}
}
}
for (int i = 0; i < arrayLength; i++)
{
if (verifyArray[i] != dataArray[i])
{
Console.WriteLine("Error writing the data.");
return;
}
}
Console.WriteLine("The data was written and verified.");
}
}
}
open System
open System.IO
let arrayLength = 1000
let dataArray = Array.zeroCreate<byte> arrayLength
let verifyArray = Array.zeroCreate<byte> arrayLength
Random().NextBytes dataArray
do
use binWriter = new BinaryWriter(new MemoryStream())
printfn "Writing the data."
binWriter.Write(dataArray, 0, arrayLength)
use binReader = new BinaryReader(binWriter.BaseStream)
binReader.BaseStream.Position <- 0
if binReader.Read(verifyArray, 0, arrayLength) <> arrayLength then
printfn "Error writing the data."
else
for i = 0 to arrayLength - 1 do
if verifyArray[i] <> dataArray[i] then
printfn "Error writing the data."
else
printfn "The data was written and verified."
Imports System.IO
Module Module1
Sub Main()
Const upperBound As Integer = 1000
Dim dataArray(upperBound) As Byte
Dim verifyArray(upperBound) As Byte
Dim randomGenerator As New Random
randomGenerator.NextBytes(dataArray)
Using binWriter As New BinaryWriter(New MemoryStream())
Console.WriteLine("Writing the data.")
binWriter.Write(dataArray, 0, dataArray.Length)
Using binReader As New BinaryReader(binWriter.BaseStream)
binReader.BaseStream.Position = 0
If binReader.Read(verifyArray, 0, dataArray.Length) <> dataArray.Length Then
Console.WriteLine("Error writing the data.")
Return
End If
End Using
End Using
For i As Integer = 0 To upperBound
If verifyArray(i) <> dataArray(i) Then
Console.WriteLine("Error writing the data.")
Return
End If
Next i
Console.WriteLine("The data was written and verified.")
End Sub
End Module
Keterangan
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(UInt64)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Penting
API ini bukan kompatibel CLS.
Menulis bilangan bulat delapan byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran sebesar delapan byte.
public:
virtual void Write(System::UInt64 value);
[System.CLSCompliant(false)]
public virtual void Write (ulong value);
[<System.CLSCompliant(false)>]
abstract member Write : uint64 -> unit
override this.Write : uint64 -> unit
Public Overridable Sub Write (value As ULong)
Parameter
- value
- UInt64
Bilangan bulat delapan byte yang tidak ditandatangani untuk ditulis.
- Atribut
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
Keterangan
BinaryWriter
menyimpan jenis data ini dalam format little endian.
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(UInt32)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Penting
API ini bukan kompatibel CLS.
Menulis bilangan bulat empat byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran sebesar empat byte.
public:
virtual void Write(System::UInt32 value);
[System.CLSCompliant(false)]
public virtual void Write (uint value);
[<System.CLSCompliant(false)>]
abstract member Write : uint32 -> unit
override this.Write : uint32 -> unit
Public Overridable Sub Write (value As UInteger)
Parameter
- value
- UInt32
Bilangan bulat empat byte yang tidak ditandatangani untuk ditulis.
- Atribut
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
Keterangan
BinaryWriter
menyimpan jenis data ini dalam format little endian.
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(UInt16)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Penting
API ini bukan kompatibel CLS.
Menulis bilangan bulat dua byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran sebesar dua byte.
public:
virtual void Write(System::UInt16 value);
[System.CLSCompliant(false)]
public virtual void Write (ushort value);
[<System.CLSCompliant(false)>]
abstract member Write : uint16 -> unit
override this.Write : uint16 -> unit
Public Overridable Sub Write (value As UShort)
Parameter
- value
- UInt16
Bilangan bulat dua byte yang tidak ditandatangani untuk ditulis.
- Atribut
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
Keterangan
BinaryWriter
menyimpan jenis data ini dalam format little endian.
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(String)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis string berawalan panjang ke aliran ini dalam pengodean saat ini dari BinaryWriter, dan memajukan posisi aliran saat ini sesuai dengan pengodean yang digunakan dan karakter tertentu yang ditulis ke aliran.
public:
virtual void Write(System::String ^ value);
public virtual void Write (string value);
abstract member Write : string -> unit
override this.Write : string -> unit
Public Overridable Sub Write (value As String)
Parameter
- value
- String
Nilai yang akan ditulis.
Pengecualian
Terjadi kesalahan I/O.
value
adalah null
.
Aliran ditutup.
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
Awalan panjang berarti bahwa metode ini pertama kali menulis panjang string, dalam byte, ketika dikodekan dengan BinaryWriter pengodean instans saat ini ke aliran. Nilai ini ditulis sebagai bilangan bulat yang tidak ditandatangani. Metode ini kemudian menulis bahwa banyak byte ke aliran.
Misalnya, string "A" memiliki panjang 1, tetapi ketika dikodekan dengan UTF-16; panjangnya adalah 2 byte, sehingga nilai yang ditulis dalam awalan adalah 2, dan 3 byte ditulis ke aliran, termasuk awalan.
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(Single)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis nilai floating-point empat byte ke aliran saat ini dan memajukan posisi aliran sebesar empat byte.
public:
virtual void Write(float value);
public virtual void Write (float value);
abstract member Write : single -> unit
override this.Write : single -> unit
Public Overridable Sub Write (value As Single)
Parameter
- value
- Single
Nilai floating-point empat byte untuk ditulis.
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
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
BinaryWriter
menyimpan jenis data ini dalam format little endian.
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(SByte)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Penting
API ini bukan kompatibel CLS.
Menulis byte yang ditandatangani ke aliran saat ini dan memajukan posisi aliran sebesar satu byte.
public:
virtual void Write(System::SByte value);
[System.CLSCompliant(false)]
public virtual void Write (sbyte value);
[<System.CLSCompliant(false)>]
abstract member Write : sbyte -> unit
override this.Write : sbyte -> unit
Public Overridable Sub Write (value As SByte)
Parameter
- value
- SByte
Byte yang ditandatangani untuk menulis.
- Atribut
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
Keterangan
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(ReadOnlySpan<Char>)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis rentang karakter ke aliran saat ini, dan memajukan posisi aliran saat ini sesuai dengan Encoding
yang digunakan dan mungkin karakter tertentu yang ditulis ke aliran.
public:
virtual void Write(ReadOnlySpan<char> chars);
public virtual void Write (ReadOnlySpan<char> chars);
abstract member Write : ReadOnlySpan<char> -> unit
override this.Write : ReadOnlySpan<char> -> unit
Public Overridable Sub Write (chars As ReadOnlySpan(Of Char))
Parameter
- chars
- ReadOnlySpan<Char>
Rentang karakter untuk ditulis.
Berlaku untuk
Write(ReadOnlySpan<Byte>)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis rentang byte ke aliran saat ini.
public:
virtual void Write(ReadOnlySpan<System::Byte> buffer);
public virtual void Write (ReadOnlySpan<byte> buffer);
abstract member Write : ReadOnlySpan<byte> -> unit
override this.Write : ReadOnlySpan<byte> -> unit
Public Overridable Sub Write (buffer As ReadOnlySpan(Of Byte))
Parameter
- buffer
- ReadOnlySpan<Byte>
Rentang byte untuk menulis.
Berlaku untuk
Write(Int64)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis bilangan bulat bertanda tangan delapan byte ke aliran saat ini dan memajukan posisi aliran sebesar delapan byte.
public:
virtual void Write(long value);
public virtual void Write (long value);
abstract member Write : int64 -> unit
override this.Write : int64 -> unit
Public Overridable Sub Write (value As Long)
Parameter
- value
- Int64
Bilangan bulat bertanda tangan delapan byte untuk ditulis.
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
Keterangan
BinaryWriter
menyimpan jenis data ini dalam format little endian.
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(Char[])
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis array karakter ke aliran saat ini dan memajukan posisi aliran saat ini sesuai dengan karakter yang Encoding
digunakan dan karakter tertentu yang ditulis ke aliran.
public:
virtual void Write(cli::array <char> ^ chars);
public virtual void Write (char[] chars);
abstract member Write : char[] -> unit
override this.Write : char[] -> unit
Public Overridable Sub Write (chars As Char())
Parameter
- chars
- Char[]
Array karakter yang berisi data untuk ditulis.
Pengecualian
chars
adalah null
.
Aliran ditutup.
Terjadi kesalahan I/O.
Contoh
Contoh kode berikut menunjukkan cara membaca dan menulis data menggunakan memori sebagai penyimpanan cadangan.
using namespace System;
using namespace System::IO;
int main()
{
array<Char>^invalidPathChars = Path::InvalidPathChars;
MemoryStream^ memStream = gcnew MemoryStream;
BinaryWriter^ binWriter = gcnew BinaryWriter( memStream );
// Write to memory.
binWriter->Write( "Invalid file path characters are: " );
binWriter->Write( Path::InvalidPathChars );
// Create the reader using the same MemoryStream
// as used with the writer.
BinaryReader^ binReader = gcnew BinaryReader( memStream );
// Set Position to the beginning of the stream.
binReader->BaseStream->Position = 0;
// Read the data from memory and write it to the console.
Console::Write( binReader->ReadString() );
Console::WriteLine( binReader->ReadChars( (int)(memStream->Length - memStream->Position) ) );
}
using System;
using System.IO;
class BinaryRW
{
static void Main()
{
char[] invalidPathChars = Path.InvalidPathChars;
MemoryStream memStream = new MemoryStream();
BinaryWriter binWriter = new BinaryWriter(memStream);
// Write to memory.
binWriter.Write("Invalid file path characters are: ");
binWriter.Write(Path.InvalidPathChars);
// Create the reader using the same MemoryStream
// as used with the writer.
BinaryReader binReader = new BinaryReader(memStream);
// Set Position to the beginning of the stream.
memStream.Position = 0;
// Read the data from memory and write it to the console.
Console.Write(binReader.ReadString());
Console.WriteLine(binReader.ReadChars(
(int)(memStream.Length - memStream.Position)));
}
}
open System.IO
let invalidPathChars = Path.GetInvalidPathChars()
let memStream = new MemoryStream()
let binWriter = new BinaryWriter(memStream)
// Write to memory.
binWriter.Write "Invalid file path characters are: "
binWriter.Write invalidPathChars
// Create the reader using the same MemoryStream
// as used with the writer.
let binReader = new BinaryReader(memStream)
// Set Position to the beginning of the stream.
memStream.Position <- 0
// Read the data from memory and write it to the console.
printf $"{binReader.ReadString()}"
printfn $"{binReader.ReadChars(int (memStream.Length - memStream.Position))}"
Imports System.IO
Public Class BinaryRW
Shared Sub Main()
Dim invalidPathChars() As Char = Path.InvalidPathChars
Dim memStream As new MemoryStream()
Dim binWriter As New BinaryWriter(memStream)
' Write to memory.
binWriter.Write("Invalid file path characters are: ")
binWriter.Write(Path.InvalidPathChars)
' Create the reader using the same MemoryStream
' as used with the writer.
Dim binReader As New BinaryReader(memStream)
' Set Position to the beginning of the stream.
memStream.Position = 0
' Read the data from memory and write it to the console.
Console.Write(binReader.ReadString())
Console.WriteLine(binReader.ReadChars( _
CInt(memStream.Length - memStream.Position)))
End Sub
End Class
Keterangan
Tabel berikut ini mencantumkan contoh tugas I/O umum atau terkait lainnya.
Untuk melakukan ini... | Lihat contoh dalam topik ini... |
---|---|
Buat file teks. | Cara: Menulis Teks ke File |
Menulis ke file teks. | Cara: Menulis Teks ke File |
Membaca dari file teks. | Cara: Membaca Teks dari File |
Tambahkan teks ke file. | Cara: Membuka dan Menambahkan ke File Log File.AppendText FileInfo.AppendText |
Mendapatkan ukuran file. | FileInfo.Length |
Mendapatkan atribut file. | File.GetAttributes |
Atur atribut file. | File.SetAttributes |
Tentukan apakah ada file. | File.Exists |
Baca dari file biner. | Cara: Membaca dan Menulis ke File Data yang Baru Dibuat |
Menulis ke file biner. | Cara: Membaca dan Menulis ke File Data yang Baru Dibuat |
Lihat juga
Berlaku untuk
Write(Int16)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis bilangan bulat bertanda tangan dua byte ke aliran saat ini dan memajukan posisi aliran sebesar dua byte.
public:
virtual void Write(short value);
public virtual void Write (short value);
abstract member Write : int16 -> unit
override this.Write : int16 -> unit
Public Overridable Sub Write (value As Short)
Parameter
- value
- Int16
Bilangan bulat bertanda tangan dua byte untuk menulis.
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
Keterangan
BinaryWriter
menyimpan jenis data ini dalam format little endian.
Tabel berikut ini mencantumkan contoh tugas I/O umum atau terkait lainnya.
Untuk melakukan ini... | Lihat contoh dalam topik ini... |
---|---|
Buat file teks. | Cara: Menulis Teks ke File |
Menulis ke file teks. | Cara: Menulis Teks ke File |
Membaca dari file teks. | Cara: Membaca Teks dari File |
Tambahkan teks ke file. | Cara: Membuka dan Menambahkan ke File Log File.AppendText FileInfo.AppendText |
Mendapatkan ukuran file. | FileInfo.Length |
Mendapatkan atribut file. | File.GetAttributes |
Atur atribut file. | File.SetAttributes |
Tentukan apakah ada file. | File.Exists |
Baca dari file biner. | Cara: Membaca dan Menulis ke File Data yang Baru Dibuat |
Menulis ke file biner. | Cara: Membaca dan Menulis ke File Data yang Baru Dibuat |
Lihat juga
Berlaku untuk
Write(Half)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis nilai floating-point dua byte ke aliran saat ini dan memajukan posisi aliran sebesar dua byte.
public:
virtual void Write(Half value);
public virtual void Write (Half value);
abstract member Write : Half -> unit
override this.Write : Half -> unit
Public Overridable Sub Write (value As Half)
Parameter
- value
- Half
Nilai floating-point dua byte untuk ditulis.
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
Contoh
Contoh kode berikut menunjukkan cara membaca dan menulis Double
data ke memori dengan menggunakan BinaryReader kelas dan BinaryWriter
di atas MemoryStream kelas . MemoryStream
hanya membaca dan menulis Byte
data.
using namespace System;
using namespace System::IO;
int main()
{
int i;
const int arrayLength = 1000;
// Create random data to write to the stream.
array<double>^dataArray = gcnew array<double>(arrayLength);
Random^ randomGenerator = gcnew Random;
for ( i = 0; i < arrayLength; i++ )
{
dataArray[ i ] = 100.1 * randomGenerator->NextDouble();
}
BinaryWriter^ binWriter = gcnew BinaryWriter( gcnew MemoryStream );
try
{
// Write data to the stream.
Console::WriteLine( "Writing data to the stream." );
i = 0;
for ( i = 0; i < arrayLength; i++ )
{
binWriter->Write( dataArray[ i ] );
}
// Create a reader using the stream from the writer.
BinaryReader^ binReader = gcnew BinaryReader( binWriter->BaseStream );
// Return to the beginning of the stream.
binReader->BaseStream->Position = 0;
try
{
// Read and verify the data.
i = 0;
Console::WriteLine( "Verifying the written data." );
for ( i = 0; i < arrayLength; i++ )
{
if ( binReader->ReadDouble() != dataArray[ i ] )
{
Console::WriteLine( "Error writing data." );
break;
}
}
Console::WriteLine( "The data was written and verified." );
}
catch ( EndOfStreamException^ e )
{
Console::WriteLine( "Error writing data: {0}.", e->GetType()->Name );
}
}
finally
{
binWriter->Close();
}
}
using System;
using System.IO;
class BinaryRW
{
static void Main()
{
int i;
const int arrayLength = 1000;
// Create random data to write to the stream.
Random randomGenerator = new Random();
double[] dataArray = new double[arrayLength];
for(i = 0; i < arrayLength; i++)
{
dataArray[i] = 100.1 * randomGenerator.NextDouble();
}
using(BinaryWriter binWriter =
new BinaryWriter(new MemoryStream()))
{
// Write the data to the stream.
Console.WriteLine("Writing data to the stream.");
for(i = 0; i < arrayLength; i++)
{
binWriter.Write(dataArray[i]);
}
// Create a reader using the stream from the writer.
using(BinaryReader binReader =
new BinaryReader(binWriter.BaseStream))
{
try
{
// Return to the beginning of the stream.
binReader.BaseStream.Position = 0;
// Read and verify the data.
Console.WriteLine("Verifying the written data.");
for(i = 0; i < arrayLength; i++)
{
if(binReader.ReadDouble() != dataArray[i])
{
Console.WriteLine("Error writing data.");
break;
}
}
Console.WriteLine("The data was written " +
"and verified.");
}
catch(EndOfStreamException e)
{
Console.WriteLine("Error writing data: {0}.",
e.GetType().Name);
}
}
}
}
}
open System
open System.IO
let arrayLength = 1000
// Create random data to write to the stream.
let randomGenerator = Random()
let dataArray =
Array.init arrayLength (fun _ -> 100.1 * randomGenerator.NextDouble())
do
use binWriter = new BinaryWriter(new MemoryStream())
// Write the data to the stream.
printfn $"Writing data to the stream."
for num in dataArray do
binWriter.Write num
// Create a reader using the stream from the writer.
use binReader = new BinaryReader(binWriter.BaseStream)
try
// Return to the beginning of the stream.
binReader.BaseStream.Position <- 0
// Read and verify the data.
printfn "Verifying the written data."
for num in dataArray do
if binReader.ReadDouble() <> num then
printfn "Error writing data."
printfn "The data was written and verified."
with :? EndOfStreamException as e ->
printfn $"Error writing data: {e.GetType().Name}."
Imports System.IO
Public Class BinaryRW
Shared Sub Main()
Dim i As Integer
Const upperBound As Integer = 1000
' Create random data to write to the stream.
Dim dataArray(upperBound) As Double
Dim randomGenerator As New Random()
For i = 0 To upperBound
dataArray(i) = 100.1 * randomGenerator.NextDouble()
Next i
Dim binWriter As New BinaryWriter(New MemoryStream())
Try
' Write data to the stream.
Console.WriteLine("Writing data to the stream.")
For i = 0 To upperBound
binWriter.Write(dataArray(i))
Next i
' Create a reader using the stream from the writer.
Dim binReader As New BinaryReader(binWriter.BaseStream)
' Return to the beginning of the stream.
binReader.BaseStream.Position = 0
' Read and verify the data.
Try
Console.WriteLine("Verifying the written data.")
For i = 0 To upperBound
If binReader.ReadDouble() <> dataArray(i) Then
Console.WriteLine("Error writing data.")
Exit For
End If
Next i
Console.WriteLine("The data was written and verified.")
Catch ex As EndOfStreamException
Console.WriteLine("Error writing data: {0}.", _
ex.GetType().Name)
End Try
Finally
binWriter.Close()
End Try
End Sub
End Class
Keterangan
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(Double)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis nilai floating-point delapan byte ke aliran saat ini dan memajukan posisi aliran sebesar delapan byte.
public:
virtual void Write(double value);
public virtual void Write (double value);
abstract member Write : double -> unit
override this.Write : double -> unit
Public Overridable Sub Write (value As Double)
Parameter
- value
- Double
Nilai floating-point delapan byte untuk ditulis.
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
Contoh
Contoh kode berikut menunjukkan cara membaca dan menulis Double
data ke memori dengan menggunakan BinaryReader kelas dan BinaryWriter
di atas MemoryStream kelas . MemoryStream
hanya membaca dan menulis Byte
data.
using namespace System;
using namespace System::IO;
int main()
{
int i;
const int arrayLength = 1000;
// Create random data to write to the stream.
array<double>^dataArray = gcnew array<double>(arrayLength);
Random^ randomGenerator = gcnew Random;
for ( i = 0; i < arrayLength; i++ )
{
dataArray[ i ] = 100.1 * randomGenerator->NextDouble();
}
BinaryWriter^ binWriter = gcnew BinaryWriter( gcnew MemoryStream );
try
{
// Write data to the stream.
Console::WriteLine( "Writing data to the stream." );
i = 0;
for ( i = 0; i < arrayLength; i++ )
{
binWriter->Write( dataArray[ i ] );
}
// Create a reader using the stream from the writer.
BinaryReader^ binReader = gcnew BinaryReader( binWriter->BaseStream );
// Return to the beginning of the stream.
binReader->BaseStream->Position = 0;
try
{
// Read and verify the data.
i = 0;
Console::WriteLine( "Verifying the written data." );
for ( i = 0; i < arrayLength; i++ )
{
if ( binReader->ReadDouble() != dataArray[ i ] )
{
Console::WriteLine( "Error writing data." );
break;
}
}
Console::WriteLine( "The data was written and verified." );
}
catch ( EndOfStreamException^ e )
{
Console::WriteLine( "Error writing data: {0}.", e->GetType()->Name );
}
}
finally
{
binWriter->Close();
}
}
using System;
using System.IO;
class BinaryRW
{
static void Main()
{
int i;
const int arrayLength = 1000;
// Create random data to write to the stream.
Random randomGenerator = new Random();
double[] dataArray = new double[arrayLength];
for(i = 0; i < arrayLength; i++)
{
dataArray[i] = 100.1 * randomGenerator.NextDouble();
}
using(BinaryWriter binWriter =
new BinaryWriter(new MemoryStream()))
{
// Write the data to the stream.
Console.WriteLine("Writing data to the stream.");
for(i = 0; i < arrayLength; i++)
{
binWriter.Write(dataArray[i]);
}
// Create a reader using the stream from the writer.
using(BinaryReader binReader =
new BinaryReader(binWriter.BaseStream))
{
try
{
// Return to the beginning of the stream.
binReader.BaseStream.Position = 0;
// Read and verify the data.
Console.WriteLine("Verifying the written data.");
for(i = 0; i < arrayLength; i++)
{
if(binReader.ReadDouble() != dataArray[i])
{
Console.WriteLine("Error writing data.");
break;
}
}
Console.WriteLine("The data was written " +
"and verified.");
}
catch(EndOfStreamException e)
{
Console.WriteLine("Error writing data: {0}.",
e.GetType().Name);
}
}
}
}
}
open System
open System.IO
let arrayLength = 1000
// Create random data to write to the stream.
let randomGenerator = Random()
let dataArray =
Array.init arrayLength (fun _ -> 100.1 * randomGenerator.NextDouble())
do
use binWriter = new BinaryWriter(new MemoryStream())
// Write the data to the stream.
printfn $"Writing data to the stream."
for num in dataArray do
binWriter.Write num
// Create a reader using the stream from the writer.
use binReader = new BinaryReader(binWriter.BaseStream)
try
// Return to the beginning of the stream.
binReader.BaseStream.Position <- 0
// Read and verify the data.
printfn "Verifying the written data."
for num in dataArray do
if binReader.ReadDouble() <> num then
printfn "Error writing data."
printfn "The data was written and verified."
with :? EndOfStreamException as e ->
printfn $"Error writing data: {e.GetType().Name}."
Imports System.IO
Public Class BinaryRW
Shared Sub Main()
Dim i As Integer
Const upperBound As Integer = 1000
' Create random data to write to the stream.
Dim dataArray(upperBound) As Double
Dim randomGenerator As New Random()
For i = 0 To upperBound
dataArray(i) = 100.1 * randomGenerator.NextDouble()
Next i
Dim binWriter As New BinaryWriter(New MemoryStream())
Try
' Write data to the stream.
Console.WriteLine("Writing data to the stream.")
For i = 0 To upperBound
binWriter.Write(dataArray(i))
Next i
' Create a reader using the stream from the writer.
Dim binReader As New BinaryReader(binWriter.BaseStream)
' Return to the beginning of the stream.
binReader.BaseStream.Position = 0
' Read and verify the data.
Try
Console.WriteLine("Verifying the written data.")
For i = 0 To upperBound
If binReader.ReadDouble() <> dataArray(i) Then
Console.WriteLine("Error writing data.")
Exit For
End If
Next i
Console.WriteLine("The data was written and verified.")
Catch ex As EndOfStreamException
Console.WriteLine("Error writing data: {0}.", _
ex.GetType().Name)
End Try
Finally
binWriter.Close()
End Try
End Sub
End Class
Keterangan
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(Decimal)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis nilai desimal ke aliran saat ini dan memajukan posisi aliran sebesar enam belas byte.
public:
virtual void Write(System::Decimal value);
public virtual void Write (decimal value);
abstract member Write : decimal -> unit
override this.Write : decimal -> unit
Public Overridable Sub Write (value As Decimal)
Parameter
- value
- Decimal
Nilai desimal yang akan ditulis.
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
Keterangan
Tabel berikut ini mencantumkan contoh tugas I/O umum atau terkait lainnya.
Untuk melakukan ini... | Lihat contoh dalam topik ini... |
---|---|
Buat file teks. | Cara: Menulis Teks ke File |
Menulis ke file teks. | Cara: Menulis Teks ke File |
Membaca dari file teks. | Cara: Membaca Teks dari File |
Tambahkan teks ke file. | Cara: Membuka dan Menambahkan ke File Log File.AppendText FileInfo.AppendText |
Mendapatkan ukuran file. | FileInfo.Length |
Mendapatkan atribut file. | File.GetAttributes |
Atur atribut file. | File.SetAttributes |
Tentukan apakah ada file. | File.Exists |
Baca dari file biner. | Cara: Membaca dan Menulis ke File Data yang Baru Dibuat |
Menulis ke file biner. | Cara: Membaca dan Menulis ke File Data yang Baru Dibuat |
Lihat juga
Berlaku untuk
Write(Char)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis karakter Unicode ke aliran saat ini dan memajukan posisi aliran saat ini sesuai dengan Encoding
karakter yang digunakan dan karakter tertentu yang ditulis ke aliran.
public:
virtual void Write(char ch);
public virtual void Write (char ch);
abstract member Write : char -> unit
override this.Write : char -> unit
Public Overridable Sub Write (ch As Char)
Parameter
- ch
- Char
Karakter non-pengganti Unicode untuk ditulis.
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
ch
adalah karakter pengganti tunggal.
Contoh
Contoh kode berikut menunjukkan cara membaca dan menulis data menggunakan memori sebagai penyimpanan cadangan.
using namespace System;
using namespace System::IO;
int main()
{
int i;
array<Char>^invalidPathChars = Path::InvalidPathChars;
MemoryStream^ memStream = gcnew MemoryStream;
BinaryWriter^ binWriter = gcnew BinaryWriter( memStream );
// Write to memory.
binWriter->Write( "Invalid file path characters are: " );
for ( i = 0; i < invalidPathChars->Length; i++ )
{
binWriter->Write( invalidPathChars[ i ] );
}
// Create the reader using the same MemoryStream
// as used with the writer.
BinaryReader^ binReader = gcnew BinaryReader( memStream );
// Set Position to the beginning of the stream.
binReader->BaseStream->Position = 0;
// Read the data from memory and write it to the console.
Console::Write( binReader->ReadString() );
array<Char>^memoryData = gcnew array<Char>(memStream->Length - memStream->Position);
for ( i = 0; i < memoryData->Length; i++ )
{
memoryData[ i ] = binReader->ReadChar();
}
Console::WriteLine( memoryData );
}
using System;
using System.IO;
class BinaryRW
{
static void Main()
{
int i = 0;
char[] invalidPathChars = Path.InvalidPathChars;
MemoryStream memStream = new MemoryStream();
BinaryWriter binWriter = new BinaryWriter(memStream);
// Write to memory.
binWriter.Write("Invalid file path characters are: ");
for(i = 0; i < invalidPathChars.Length; i++)
{
binWriter.Write(invalidPathChars[i]);
}
// Create the reader using the same MemoryStream
// as used with the writer.
BinaryReader binReader = new BinaryReader(memStream);
// Set Position to the beginning of the stream.
memStream.Position = 0;
// Read the data from memory and write it to the console.
Console.Write(binReader.ReadString());
char[] memoryData =
new char[memStream.Length - memStream.Position];
for(i = 0; i < memoryData.Length; i++)
{
memoryData[i] = binReader.ReadChar();
}
Console.WriteLine(memoryData);
}
}
open System.IO
let invalidPathChars = Path.GetInvalidPathChars()
let memStream = new MemoryStream()
let binWriter = new BinaryWriter(memStream)
// Write to memory.
binWriter.Write "Invalid file path characters are: "
for i = 0 to invalidPathChars.Length - 1 do
binWriter.Write invalidPathChars[i]
// Create the reader using the same MemoryStream
// as used with the writer.
let binReader = new BinaryReader(memStream)
// Set Position to the beginning of the stream.
memStream.Position <- 0
// Read the data from memory and write it to the console.
printf $"{binReader.ReadString()}"
let memoryData = Array.zeroCreate<char> (int (memStream.Length - memStream.Position))
for i = 0 to memoryData.Length - 1 do
memoryData[i] <- binReader.ReadChar()
printfn $"{memoryData}"
Imports System.IO
Public Class BinaryRW
Shared Sub Main()
Dim i As Integer = 0
Dim invalidPathChars() As Char = Path.InvalidPathChars
Dim memStream As new MemoryStream()
Dim binWriter As New BinaryWriter(memStream)
' Write to memory.
binWriter.Write("Invalid file path characters are: ")
For i = 0 To invalidPathChars.Length - 1
binWriter.Write(invalidPathChars(i))
Next i
' Create the reader using the same MemoryStream
' as used with the writer.
Dim binReader As New BinaryReader(memStream)
' Set Position to the beginning of the stream.
memStream.Position = 0
' Read the data from memory and write it to the console.
Console.Write(binReader.ReadString())
Dim memoryData( _
CInt(memStream.Length - memStream.Position) - 1) As Char
For i = 0 To memoryData.Length - 1
memoryData(i) = binReader.ReadChar()
Next i
Console.WriteLine(memoryData)
End Sub
End Class
Keterangan
Karena konflik pemformatan data, menggunakan metode ini dengan pengodean berikut tidak disarankan:
UTF-7
ISO-2022-JP
ISCII
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Karakter pengganti Unicode harus ditulis sebagai pasangan bersama-sama dalam panggilan yang sama, bukan secara individual. Jika Anda memerlukan dukungan untuk pasangan pengganti di aplikasi Anda, pertimbangkan untuk menggunakan array karakter dan Write metode kelebihan beban.
Lihat juga
Berlaku untuk
Write(Byte[])
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis array byte ke aliran yang mendasar.
public:
virtual void Write(cli::array <System::Byte> ^ buffer);
public virtual void Write (byte[] buffer);
abstract member Write : byte[] -> unit
override this.Write : byte[] -> unit
Public Overridable Sub Write (buffer As Byte())
Parameter
- buffer
- Byte[]
Array byte yang berisi data untuk ditulis.
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
buffer
adalah null
.
Contoh
Contoh kode berikut menunjukkan cara menulis data biner menggunakan memori sebagai penyimpanan cadangan, lalu memverifikasi bahwa data ditulis dengan benar.
using namespace System;
using namespace System::IO;
int main()
{
const int arrayLength = 1000;
// Create random data to write to the stream.
array<Byte>^dataArray = gcnew array<Byte>(arrayLength);
(gcnew Random)->NextBytes( dataArray );
BinaryWriter^ binWriter = gcnew BinaryWriter( gcnew MemoryStream );
// Write the data to the stream.
Console::WriteLine( "Writing the data." );
binWriter->Write( dataArray );
// Create the reader using the stream from the writer.
BinaryReader^ binReader = gcnew BinaryReader( binWriter->BaseStream );
// Set the stream position to the beginning of the stream.
binReader->BaseStream->Position = 0;
// Read and verify the data.
array<Byte>^verifyArray = binReader->ReadBytes( arrayLength );
if ( verifyArray->Length != arrayLength )
{
Console::WriteLine( "Error writing the data." );
return -1;
}
for ( int i = 0; i < arrayLength; i++ )
{
if ( verifyArray[ i ] != dataArray[ i ] )
{
Console::WriteLine( "Error writing the data." );
return -1;
}
}
Console::WriteLine( "The data was written and verified." );
}
using System;
using System.IO;
class BinaryRW
{
static void Main()
{
const int arrayLength = 1000;
// Create random data to write to the stream.
byte[] dataArray = new byte[arrayLength];
new Random().NextBytes(dataArray);
BinaryWriter binWriter = new BinaryWriter(new MemoryStream());
// Write the data to the stream.
Console.WriteLine("Writing the data.");
binWriter.Write(dataArray);
// Create the reader using the stream from the writer.
BinaryReader binReader =
new BinaryReader(binWriter.BaseStream);
// Set Position to the beginning of the stream.
binReader.BaseStream.Position = 0;
// Read and verify the data.
byte[] verifyArray = binReader.ReadBytes(arrayLength);
if(verifyArray.Length != arrayLength)
{
Console.WriteLine("Error writing the data.");
return;
}
for(int i = 0; i < arrayLength; i++)
{
if(verifyArray[i] != dataArray[i])
{
Console.WriteLine("Error writing the data.");
return;
}
}
Console.WriteLine("The data was written and verified.");
}
}
open System
open System.IO
let arrayLength = 1000
// Create random data to write to the stream.
let dataArray = Array.zeroCreate<byte> arrayLength
Random().NextBytes dataArray
let binWriter = new BinaryWriter(new MemoryStream())
// Write the data to the stream.ch
printfn "Writing the data."
binWriter.Write dataArray
// Create the reader using the stream from the writer.
let binReader = new BinaryReader(binWriter.BaseStream)
// Set Position to the beginning of the stream.
binReader.BaseStream.Position <- 0
// Read and verify the data.
let verifyArray = binReader.ReadBytes arrayLength
if verifyArray.Length <> arrayLength then
printfn "Error writing the data."
else
let mutable failed = false
for i = 0 to arrayLength - 1 do
if verifyArray[i] <> dataArray[i] then
printfn "Error writing the data."
failed <- true
if not failed then
printfn "The data was written and verified."
Imports System.IO
Public Class BinaryRW
Shared Sub Main()
Const upperBound As Integer = 1000
' Create random data to write to the stream.
Dim dataArray(upperBound) As Byte
Dim randomGenerator As New Random
randomGenerator.NextBytes(dataArray)
Dim binWriter As New BinaryWriter(New MemoryStream())
' Write the data to the stream.
Console.WriteLine("Writing the data.")
binWriter.Write(dataArray)
' Create the reader using the stream from the writer.
Dim binReader As New BinaryReader(binWriter.BaseStream)
' Set the stream position to the beginning of the stream.
binReader.BaseStream.Position = 0
' Read and verify the data.
Dim verifyArray() As Byte = _
binReader.ReadBytes(dataArray.Length)
If verifyArray.Length <> dataArray.Length Then
Console.WriteLine("Error writing the data.")
Return
End If
For i As Integer = 0 To upperBound
If verifyArray(i) <> dataArray(i) Then
Console.WriteLine("Error writing the data.")
Return
End If
Next i
Console.WriteLine("The data was written and verified.")
End Sub
End Class
Keterangan
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(Byte)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis byte yang tidak ditandatangani ke aliran saat ini dan memajukan posisi aliran satu byte.
public:
virtual void Write(System::Byte value);
public virtual void Write (byte value);
abstract member Write : byte -> unit
override this.Write : byte -> unit
Public Overridable Sub Write (value As Byte)
Parameter
- value
- Byte
Byte yang tidak ditandatangani untuk ditulis.
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
Contoh
Contoh kode berikut menunjukkan cara menulis data biner menggunakan memori sebagai penyimpanan cadangan, lalu memverifikasi bahwa data ditulis dengan benar.
using namespace System;
using namespace System::IO;
int main()
{
int i = 0;
// Create random data to write to the stream.
array<Byte>^writeArray = gcnew array<Byte>(1000);
(gcnew Random)->NextBytes( writeArray );
BinaryWriter^ binWriter = gcnew BinaryWriter( gcnew MemoryStream );
BinaryReader^ binReader = gcnew BinaryReader( binWriter->BaseStream );
try
{
// Write the data to the stream.
Console::WriteLine( "Writing the data." );
for ( i = 0; i < writeArray->Length; i++ )
{
binWriter->Write( writeArray[ i ] );
}
// Set the stream position to the beginning of the stream.
binReader->BaseStream->Position = 0;
// Read and verify the data from the stream.
for ( i = 0; i < writeArray->Length; i++ )
{
if ( binReader->ReadByte() != writeArray[ i ] )
{
Console::WriteLine( "Error writing the data." );
return -1;
}
}
Console::WriteLine( "The data was written and verified." );
}
// Catch the EndOfStreamException and write an error message.
catch ( EndOfStreamException^ e )
{
Console::WriteLine( "Error writing the data.\n{0}", e->GetType()->Name );
}
}
using System;
using System.IO;
class BinaryRW
{
static void Main()
{
int i = 0;
// Create random data to write to the stream.
byte[] writeArray = new byte[1000];
new Random().NextBytes(writeArray);
BinaryWriter binWriter = new BinaryWriter(new MemoryStream());
BinaryReader binReader =
new BinaryReader(binWriter.BaseStream);
try
{
// Write the data to the stream.
Console.WriteLine("Writing the data.");
for(i = 0; i < writeArray.Length; i++)
{
binWriter.Write(writeArray[i]);
}
// Set the stream position to the beginning of the stream.
binReader.BaseStream.Position = 0;
// Read and verify the data from the stream.
for(i = 0; i < writeArray.Length; i++)
{
if(binReader.ReadByte() != writeArray[i])
{
Console.WriteLine("Error writing the data.");
return;
}
}
Console.WriteLine("The data was written and verified.");
}
// Catch the EndOfStreamException and write an error message.
catch(EndOfStreamException e)
{
Console.WriteLine("Error writing the data.\n{0}",
e.GetType().Name);
}
}
}
open System
open System.IO
// Create random data to write to the stream.
let writeArray = Array.zeroCreate<byte> 1000
Random().NextBytes writeArray
let binWriter = new BinaryWriter(new MemoryStream())
let binReader = new BinaryReader(binWriter.BaseStream)
try
// Write the data to the stream.
printfn "Writing the data."
for i = 0 to writeArray.Length - 1 do
binWriter.Write writeArray[i]
// Set the stream position to the beginning of the stream.
binReader.BaseStream.Position <- 0
let mutable failed = false
// Read and verify the data from the stream.
for i = 0 to writeArray.Length - 1 do
if binReader.ReadByte() <> writeArray[i] then
printfn "Error writing the data."
failed <- true
if not failed then
printfn "The data was written and verified."
// Catch the EndOfStreamException and write an error message.
with :? EndOfStreamException as e ->
printfn $"Error writing the data.\n{e.GetType().Name}"
Imports System.IO
Public Class BinaryRW
Shared Sub Main()
Dim i As Integer = 0
' Create random data to write to the stream.
Dim writeArray(1000) As Byte
Dim randomGenerator As New Random()
randomGenerator.NextBytes(writeArray)
Dim binWriter As New BinaryWriter(New MemoryStream())
Dim binReader As New BinaryReader(binWriter.BaseStream)
Try
' Write the data to the stream.
Console.WriteLine("Writing the data.")
For i = 0 To writeArray.Length - 1
binWriter.Write(writeArray(i))
Next i
' Set the stream position to the beginning of the stream.
binReader.BaseStream.Position = 0
' Read and verify the data from the stream.
For i = 0 To writeArray.Length - 1
If binReader.ReadByte() <> writeArray(i) Then
Console.WriteLine("Error writing the data.")
Return
End If
Next i
Console.WriteLine("The data was written and verified.")
' Catch the EndOfStreamException and write an error message.
Catch ex As EndOfStreamException
Console.WriteLine("Error writing the data: {0}", _
ex.GetType().Name)
End Try
End Sub
End Class
Keterangan
Karena konflik pemformatan data, menggunakan metode ini dengan pengodean berikut tidak disarankan:
UTF-7
ISO-2022-JP
ISCII
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(Boolean)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis nilai satu byte Boolean
ke aliran saat ini, dengan 0 mewakili false
dan 1 mewakili true
.
public:
virtual void Write(bool value);
public virtual void Write (bool value);
abstract member Write : bool -> unit
override this.Write : bool -> unit
Public Overridable Sub Write (value As Boolean)
Parameter
- value
- Boolean
Nilai Boolean
yang akan ditulis (0 atau 1).
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
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
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.
Lihat juga
Berlaku untuk
Write(Int32)
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
- Sumber:
- BinaryWriter.cs
Menulis bilangan bulat bertanda empat byte ke aliran saat ini dan memajukan posisi aliran sebesar empat byte.
public:
virtual void Write(int value);
public virtual void Write (int value);
abstract member Write : int -> unit
override this.Write : int -> unit
Public Overridable Sub Write (value As Integer)
Parameter
- value
- Int32
Bilangan bulat bertanda tangan empat byte untuk ditulis.
Pengecualian
Terjadi kesalahan I/O.
Aliran ditutup.
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
BinaryWriter
menyimpan jenis data ini dalam format little endian.
Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.