BinaryWriter.Write Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Grava um valor no fluxo atual.
Sobrecargas
Write(Char[], Int32, Int32) |
Grava uma seção de uma matriz de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com o |
Write(Byte[], Int32, Int32) |
Grava uma região de uma matriz de bytes no fluxo atual. |
Write(UInt64) |
Grava um inteiro sem sinal de oito bytes no fluxo atual e avança a posição do fluxo em oito bytes. |
Write(UInt32) |
Grava um inteiro sem sinal de quatro bytes no fluxo atual e avança a posição do fluxo em quatro bytes. |
Write(UInt16) |
Grava um inteiro sem sinal de dois bytes no fluxo atual e avança a posição do fluxo em dois bytes. |
Write(String) |
Grava uma cadeia de caracteres de tamanho prefixado nesse fluxo na codificação atual do BinaryWriter e avança a posição atual do fluxo de acordo com a codificação usada e os caracteres específicos que estão sendo gravados no fluxo. |
Write(Single) |
Grava um valor de ponto flutuante de quatro bytes no fluxo atual e avança a posição do fluxo em quatro bytes. |
Write(SByte) |
Grava um byte com sinal no fluxo atual e avança a posição do fluxo em um byte. |
Write(ReadOnlySpan<Char>) |
Grava um intervalo de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com a |
Write(ReadOnlySpan<Byte>) |
Grava um intervalo de bytes no fluxo atual. |
Write(Int64) |
Grava um inteiro com sinal de oito bytes no fluxo atual e avança a posição do fluxo em oito bytes. |
Write(Char[]) |
Grava uma matriz de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com o |
Write(Int16) |
Grava um inteiro com sinal de dois bytes no fluxo atual e avança a posição de fluxo em dois bytes. |
Write(Half) |
Grava um valor de ponto flutuante de dois bytes no fluxo atual e avança a posição do fluxo em dois bytes. |
Write(Double) |
Grava um valor de ponto flutuante de oito bytes no fluxo atual e avança a posição do fluxo em oito bytes. |
Write(Decimal) |
Grava um valor decimal no fluxo atual e avança a posição do fluxo em 16 bytes. |
Write(Char) |
Grava um caractere Unicode no fluxo atual e avança a posição atual do fluxo de acordo com o |
Write(Byte[]) |
Grava uma matriz de bytes no fluxo subjacente. |
Write(Byte) |
Grava um byte sem sinal no fluxo atual e avança a posição do fluxo em um byte. |
Write(Boolean) |
Grava um valor |
Write(Int32) |
Grava um inteiro com sinal de quatro bytes no fluxo atual e avança a posição do fluxo em quatro bytes. |
Write(Char[], Int32, Int32)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava uma seção de uma matriz de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com o Encoding
usado e talvez com os caracteres específicos que estão sendo gravados no fluxo.
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)
Parâmetros
- chars
- Char[]
Uma matriz de caracteres que contém os dados a serem gravados.
- index
- Int32
O índice do primeiro caractere a ser lido do chars
e gravado no fluxo.
- count
- Int32
O número de caracteres a serem lidos do chars
e gravados no fluxo.
Exceções
O tamanho do buffer menos index
é menor que count
.
chars
é null
.
index
ou count
é negativo.
Ocorre um erro de E/S.
O fluxo está fechado.
Exemplos
O exemplo de código a seguir mostra como ler e gravar dados usando a memória como um repositório de backup.
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
Comentários
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(Byte[], Int32, Int32)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava uma região de uma matriz de bytes no fluxo atual.
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)
Parâmetros
- buffer
- Byte[]
Uma matriz de bytes que contém os dados a serem gravados.
- index
- Int32
O índice do primeiro byte para ler do buffer
e gravar no fluxo.
- count
- Int32
O número de bytes para ler do buffer
e gravar no fluxo.
Exceções
O tamanho do buffer menos index
é menor que count
.
buffer
é null
.
index
ou count
é negativo.
Ocorre um erro de E/S.
O fluxo está fechado.
Exemplos
O exemplo de código a seguir mostra como gravar dados binários usando a memória como um repositório de backup e, em seguida, verificar se os dados foram gravados corretamente.
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
Comentários
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(UInt64)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Importante
Esta API não está em conformidade com CLS.
Grava um inteiro sem sinal de oito bytes no fluxo atual e avança a posição do fluxo em oito bytes.
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)
Parâmetros
- value
- UInt64
O inteiro sem sinal de oito bytes a ser gravado.
- Atributos
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
Comentários
BinaryWriter
armazena esse tipo de dados no formato little endian.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(UInt32)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Importante
Esta API não está em conformidade com CLS.
Grava um inteiro sem sinal de quatro bytes no fluxo atual e avança a posição do fluxo em quatro bytes.
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)
Parâmetros
- value
- UInt32
O inteiro sem sinal de quatro bytes a ser gravado.
- Atributos
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
Comentários
BinaryWriter
armazena esse tipo de dados no formato little endian.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(UInt16)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Importante
Esta API não está em conformidade com CLS.
Grava um inteiro sem sinal de dois bytes no fluxo atual e avança a posição do fluxo em dois bytes.
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)
Parâmetros
- value
- UInt16
O inteiro sem sinal de dois bytes a ser gravado.
- Atributos
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
Comentários
BinaryWriter
armazena esse tipo de dados no formato little endian.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(String)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava uma cadeia de caracteres de tamanho prefixado nesse fluxo na codificação atual do BinaryWriter e avança a posição atual do fluxo de acordo com a codificação usada e os caracteres específicos que estão sendo gravados no fluxo.
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)
Parâmetros
- value
- String
O valor a ser gravado.
Exceções
Ocorre um erro de E/S.
value
é null
.
O fluxo está fechado.
Exemplos
O exemplo de código a seguir demonstra como armazenar e recuperar as configurações do aplicativo em um arquivo.
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
Comentários
Prefixado por comprimento significa que esse método grava primeiro o comprimento da cadeia de caracteres, em bytes, quando codificado com a BinaryWriter codificação atual da instância no fluxo. Esse valor é gravado como um inteiro sem sinal. Em seguida, esse método grava muitos bytes no fluxo.
Por exemplo, a cadeia de caracteres "A" tem um comprimento de 1, mas quando codificada com UTF-16; o comprimento é de 2 bytes, portanto, o valor gravado no prefixo é 2 e 3 bytes são gravados no fluxo, incluindo o prefixo.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(Single)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava um valor de ponto flutuante de quatro bytes no fluxo atual e avança a posição do fluxo em quatro bytes.
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)
Parâmetros
- value
- Single
O valor de ponto flutuante de quatro bytes a ser gravado.
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
Exemplos
O exemplo de código a seguir demonstra como armazenar e recuperar as configurações do aplicativo em um arquivo.
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
Comentários
BinaryWriter
armazena esse tipo de dados no formato little endian.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(SByte)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Importante
Esta API não está em conformidade com CLS.
Grava um byte com sinal no fluxo atual e avança a posição do fluxo em um 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)
Parâmetros
- value
- SByte
O byte com sinal a ser gravado.
- Atributos
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
Comentários
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(ReadOnlySpan<Char>)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava um intervalo de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com a Encoding
usada e talvez com os caracteres específicos que estão sendo gravados no fluxo.
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))
Parâmetros
- chars
- ReadOnlySpan<Char>
Um intervalo de char a ser gravado.
Aplica-se a
Write(ReadOnlySpan<Byte>)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava um intervalo de bytes no fluxo atual.
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))
Parâmetros
- buffer
- ReadOnlySpan<Byte>
O intervalo de bytes a ser gravado.
Aplica-se a
Write(Int64)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava um inteiro com sinal de oito bytes no fluxo atual e avança a posição do fluxo em oito bytes.
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)
Parâmetros
- value
- Int64
O inteiro com sinal de oito bytes a ser gravado.
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
Comentários
BinaryWriter
armazena esse tipo de dados no formato little endian.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(Char[])
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava uma matriz de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com o Encoding
usado e os caracteres específicos que estão sendo gravados no fluxo.
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())
Parâmetros
- chars
- Char[]
Uma matriz de caracteres que contém os dados a serem gravados.
Exceções
chars
é null
.
O fluxo está fechado.
Ocorre um erro de E/S.
Exemplos
O exemplo de código a seguir mostra como ler e gravar dados usando a memória como um repositório de backup.
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
Comentários
A tabela a seguir lista exemplos de outras tarefas de E/S típicas ou relacionadas.
Para fazer isso... | Veja o exemplo neste tópico... |
---|---|
Crie um arquivo de texto. | Como gravar texto em um arquivo |
Gravar em um arquivo de texto. | Como gravar texto em um arquivo |
Ler de um arquivo de texto. | Como ler texto de um arquivo |
Acrescente o texto a um arquivo. | Como abrir e acrescentar a um arquivo de log File.AppendText FileInfo.AppendText |
Obtenha o tamanho de um arquivo. | FileInfo.Length |
Obtenha os atributos de um arquivo. | File.GetAttributes |
Defina os atributos de um arquivo. | File.SetAttributes |
Determine se existe um arquivo. | File.Exists |
Ler de um arquivo binário. | Como ler e gravar em um arquivo de dados recém-criado |
Gravar em um arquivo binário. | Como ler e gravar em um arquivo de dados recém-criado |
Confira também
Aplica-se a
Write(Int16)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava um inteiro com sinal de dois bytes no fluxo atual e avança a posição de fluxo em dois bytes.
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)
Parâmetros
- value
- Int16
O inteiro com sinal de dois bytes a ser gravado.
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
Comentários
BinaryWriter
armazena esse tipo de dados no formato little endian.
A tabela a seguir lista exemplos de outras tarefas de E/S típicas ou relacionadas.
Para fazer isso... | Veja o exemplo neste tópico... |
---|---|
Crie um arquivo de texto. | Como gravar texto em um arquivo |
Gravar em um arquivo de texto. | Como gravar texto em um arquivo |
Ler de um arquivo de texto. | Como ler texto de um arquivo |
Acrescente o texto a um arquivo. | Como abrir e acrescentar a um arquivo de log File.AppendText FileInfo.AppendText |
Obtenha o tamanho de um arquivo. | FileInfo.Length |
Obtenha os atributos de um arquivo. | File.GetAttributes |
Defina os atributos de um arquivo. | File.SetAttributes |
Determine se existe um arquivo. | File.Exists |
Ler de um arquivo binário. | Como ler e gravar em um arquivo de dados recém-criado |
Gravar em um arquivo binário. | Como ler e gravar em um arquivo de dados recém-criado |
Confira também
Aplica-se a
Write(Half)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava um valor de ponto flutuante de dois bytes no fluxo atual e avança a posição do fluxo em dois bytes.
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)
Parâmetros
- value
- Half
O valor de ponto flutuante de dois bytes a ser gravado.
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
Exemplos
O exemplo de código a seguir mostra como ler e gravar Double
dados na memória usando as BinaryReader classes e BinaryWriter
na parte superior da MemoryStream classe . MemoryStream
somente lê e grava Byte
dados.
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
Comentários
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(Double)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava um valor de ponto flutuante de oito bytes no fluxo atual e avança a posição do fluxo em oito bytes.
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)
Parâmetros
- value
- Double
O valor de ponto flutuante de oito bytes a ser gravado.
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
Exemplos
O exemplo de código a seguir mostra como ler e gravar Double
dados na memória usando as BinaryReader classes e BinaryWriter
na parte superior da MemoryStream classe . MemoryStream
somente lê e grava Byte
dados.
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
Comentários
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(Decimal)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava um valor decimal no fluxo atual e avança a posição do fluxo em 16 bytes.
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)
Parâmetros
- value
- Decimal
O valor decimal a ser gravado.
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
Comentários
A tabela a seguir lista exemplos de outras tarefas de E/S típicas ou relacionadas.
Para fazer isso... | Veja o exemplo neste tópico... |
---|---|
Crie um arquivo de texto. | Como gravar texto em um arquivo |
Gravar em um arquivo de texto. | Como gravar texto em um arquivo |
Ler de um arquivo de texto. | Como ler texto de um arquivo |
Acrescente o texto a um arquivo. | Como abrir e acrescentar a um arquivo de log File.AppendText FileInfo.AppendText |
Obtenha o tamanho de um arquivo. | FileInfo.Length |
Obtenha os atributos de um arquivo. | File.GetAttributes |
Defina os atributos de um arquivo. | File.SetAttributes |
Determine se existe um arquivo. | File.Exists |
Ler de um arquivo binário. | Como ler e gravar em um arquivo de dados recém-criado |
Gravar em um arquivo binário. | Como ler e gravar em um arquivo de dados recém-criado |
Confira também
Aplica-se a
Write(Char)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava um caractere Unicode no fluxo atual e avança a posição atual do fluxo de acordo com o Encoding
usado e os caracteres específicos que estão sendo gravados no fluxo.
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)
Parâmetros
- ch
- Char
O caractere Unicode não alternativo a ser gravado.
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
ch
é um caractere alternativo único.
Exemplos
O exemplo de código a seguir mostra como ler e gravar dados usando a memória como um repositório de backup.
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
Comentários
Devido a conflitos de formatação de dados, não é recomendável usar esse método com as seguintes codificações:
UTF-7
ISO-2022-JP
ISCII
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Os caracteres alternativos Unicode devem ser gravados como pares na mesma chamada, não individualmente. Se você precisar de suporte para pares alternativos em seu aplicativo, considere usar uma matriz de caracteres e a sobrecarga do Write método.
Confira também
Aplica-se a
Write(Byte[])
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava uma matriz de bytes no fluxo subjacente.
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())
Parâmetros
- buffer
- Byte[]
Uma matriz de bytes que contém os dados a serem gravados.
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
buffer
é null
.
Exemplos
O exemplo de código a seguir mostra como gravar dados binários usando a memória como um repositório de backup e, em seguida, verificar se os dados foram gravados corretamente.
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
Comentários
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(Byte)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava um byte sem sinal no fluxo atual e avança a posição do fluxo em um 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)
Parâmetros
- value
- Byte
O byte sem sinal a gravar.
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
Exemplos
O exemplo de código a seguir mostra como gravar dados binários usando a memória como um repositório de backup e, em seguida, verificar se os dados foram gravados corretamente.
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
Comentários
Devido a conflitos de formatação de dados, não é recomendável usar esse método com as seguintes codificações:
UTF-7
ISO-2022-JP
ISCII
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(Boolean)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava um valor Boolean
de um byte no fluxo atual, com 0 representando false
e 1 representando 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)
Parâmetros
- value
- Boolean
O valor Boolean
a ser gravado (0 ou 1).
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
Exemplos
O exemplo de código a seguir demonstra como armazenar e recuperar as configurações do aplicativo em um arquivo.
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
Comentários
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.
Confira também
Aplica-se a
Write(Int32)
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
- Origem:
- BinaryWriter.cs
Grava um inteiro com sinal de quatro bytes no fluxo atual e avança a posição do fluxo em quatro bytes.
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)
Parâmetros
- value
- Int32
O inteiro com sinal de quatro bytes a ser gravado.
Exceções
Ocorre um erro de E/S.
O fluxo está fechado.
Exemplos
O exemplo de código a seguir demonstra como armazenar e recuperar as configurações do aplicativo em um arquivo.
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
Comentários
BinaryWriter
armazena esse tipo de dados no formato little endian.
Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.