Udostępnij za pośrednictwem


FileStream.Write Metoda

Definicja

Przeciążenia

Write(ReadOnlySpan<Byte>)

Zapisuje sekwencję bajtów z zakresu tylko do odczytu do bieżącego strumienia plików i rozwija bieżącą pozycję w tym strumieniu plików według liczby zapisanych bajtów.

Write(Byte[], Int32, Int32)

Zapisuje blok bajtów do strumienia plików.

Write(ReadOnlySpan<Byte>)

Źródło:
FileStream.cs
Źródło:
FileStream.cs
Źródło:
FileStream.cs

Zapisuje sekwencję bajtów z zakresu tylko do odczytu do bieżącego strumienia plików i rozwija bieżącą pozycję w tym strumieniu plików według liczby zapisanych bajtów.

public:
 override void Write(ReadOnlySpan<System::Byte> buffer);
public override void Write (ReadOnlySpan<byte> buffer);
override this.Write : ReadOnlySpan<byte> -> unit
Public Overrides Sub Write (buffer As ReadOnlySpan(Of Byte))

Parametry

buffer
ReadOnlySpan<Byte>

Region pamięci. Ta metoda kopiuje zawartość tego regionu do bieżącego strumienia plików.

Wyjątki

.NET 8 i nowsze wersje: podstawowy potok jest zamknięty lub odłączony.

Uwagi

Użyj właściwości , CanWrite aby określić, czy bieżące wystąpienie obsługuje pisanie. WriteAsync Użyj metody , aby zapisać asynchronicznie do bieżącego strumienia.

Jeśli operacja zapisu zakończy się pomyślnie, pozycja w strumieniu plików przechodzi przez liczbę zapisanych bajtów. Jeśli wystąpi wyjątek, pozycja w strumieniu plików pozostaje niezmieniona.

Dotyczy

Write(Byte[], Int32, Int32)

Źródło:
FileStream.cs
Źródło:
FileStream.cs
Źródło:
FileStream.cs

Zapisuje blok bajtów do strumienia plików.

public:
 override void Write(cli::array <System::Byte> ^ array, int offset, int count);
public:
 override void Write(cli::array <System::Byte> ^ buffer, int offset, int count);
public override void Write (byte[] array, int offset, int count);
public override void Write (byte[] buffer, int offset, int count);
override this.Write : byte[] * int * int -> unit
override this.Write : byte[] * int * int -> unit
Public Overrides Sub Write (array As Byte(), offset As Integer, count As Integer)
Public Overrides Sub Write (buffer As Byte(), offset As Integer, count As Integer)

Parametry

arraybuffer
Byte[]

Bufor zawierający dane do zapisu w strumieniu.

offset
Int32

Przesunięcie bajtów na podstawie zera, z array którego ma rozpocząć kopiowanie bajtów do strumienia.

count
Int32

Maksymalna liczba bajtów do zapisu.

Wyjątki

array to null.

offset i count opisz nieprawidłowy zakres w pliku array.

offset lub count jest ujemny.

Wystąpił błąd we/wy.

-lub-

Inny wątek mógł spowodować nieoczekiwaną zmianę pozycji uchwytu pliku systemu operacyjnego.

-lub-

.NET 8 i nowsze wersje: podstawowy potok jest zamknięty lub odłączony.

Strumień jest zamknięty.

Bieżące wystąpienie strumienia nie obsługuje zapisu.

Przykłady

Ten przykład kodu jest częścią większego przykładu podanego Lock dla metody .

// Write the original file data.
if ( fileStream->Length == 0 )
{
   tempString = String::Concat( lastRecordText, recordNumber.ToString() );
   fileStream->Write( uniEncoding->GetBytes( tempString ), 0, uniEncoding->GetByteCount( tempString ) );
}
// Write the original file data.
if(fileStream.Length == 0)
{
    tempString =
        lastRecordText + recordNumber.ToString();
    fileStream.Write(uniEncoding.GetBytes(tempString),
        0, uniEncoding.GetByteCount(tempString));
}
// Write the original file data.
if fileStream.Length = 0 then
    let tempString = lastRecordText + string recordNumber
    fileStream.Write(uniEncoding.GetBytes tempString, 0, uniEncoding.GetByteCount tempString)
' Write the original file data.
If aFileStream.Length = 0 Then
    tempString = _
        lastRecordText + recordNumber.ToString()
    aFileStream.Write(uniEncoding.GetBytes(tempString), _
        0, uniEncoding.GetByteCount(tempString))
End If

Uwagi

Ta metoda zastępuje Write.

Parametr offset daje przesunięcie bajtu w array (indeks buforu), w którym ma rozpocząć kopiowanie, a count parametr daje liczbę bajtów, które zostaną zapisane w strumieniu. Jeśli operacja zapisu zakończy się pomyślnie, bieżąca pozycja strumienia jest zaawansowana przez liczbę zapisanych bajtów. Jeśli wystąpi wyjątek, bieżąca pozycja strumienia pozostaje niezmieniona.

Uwaga

Użyj właściwości , CanWrite aby określić, czy bieżące wystąpienie obsługuje pisanie. Aby uzyskać dodatkowe informacje, zobacz CanWrite.

Nie przerywaj wątku wykonującego operację zapisu. Mimo że aplikacja może działać pomyślnie po odblokowaniu wątku, przerwa w działaniu aplikacji może zmniejszyć wydajność i niezawodność aplikacji.

Aby uzyskać listę typowych operacji dotyczących plików i katalogów, zobacz Typowe zadania we/wy.

Zobacz też

Dotyczy