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 postępuje bieżącą pozycję w tym strumieniu plików przez liczbę zapisanych bajtów.Writes a sequence of bytes from a read-only span to the current file stream and advances the current position within this file stream by the number of bytes written.

Write(Byte[], Int32, Int32)

Zapisuje blok bajtów w strumieniu pliku.Writes a block of bytes to the file stream.

Write(ReadOnlySpan<Byte>)

Zapisuje sekwencję bajtów z zakresu tylko do odczytu do bieżącego strumienia plików i postępuje bieżącą pozycję w tym strumieniu plików przez liczbę zapisanych bajtów.Writes a sequence of bytes from a read-only span to the current file stream and advances the current position within this file stream by the number of bytes written.

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.A region of memory. Ta metoda kopiuje zawartość tego regionu do bieżącego strumienia pliku.This method copies the contents of this region to the current file stream.

Uwagi

Użyj właściwości CanWrite, aby określić, czy bieżące wystąpienie obsługuje zapisywanie.Use the CanWrite property to determine whether the current instance supports writing. Użyj metody WriteAsync, aby zapisywać asynchronicznie w bieżącym strumieniu.Use the WriteAsync method to write asynchronously to the current stream.

W przypadku pomyślnego wykonania operacji zapisu pozycja w strumieniu pliku jest zapisywana przez liczbę zapisanych bajtów.If the write operation is successful, the position within the file stream advances by the number of bytes written. Jeśli wystąpi wyjątek, pozycja w strumieniu pliku pozostaje niezmieniona.If an exception occurs, the position within the file stream remains unchanged.

Write(Byte[], Int32, Int32)

Zapisuje blok bajtów w strumieniu pliku.Writes a block of bytes to the file stream.

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

Parametry

array
Byte[]

Bufor zawierający dane do zapisu w strumieniu.The buffer containing data to write to the stream.

offset
Int32

Przesunięcie bajtu na podstawie zera w array, z którego ma rozpocząć kopiowanie bajtów do strumienia.The zero-based byte offset in array from which to begin copying bytes to the stream.

count
Int32

Maksymalna liczba bajtów do zapisania.The maximum number of bytes to write.

Wyjątki

Parametr array ma wartość null.array is null.

offset i count opisują nieprawidłowy zakres w array.offset and count describe an invalid range in array.

offset lub count jest wartością ujemną.offset or count is negative.

Wystąpił błąd we/wy.An I/O error occurred.

— lub —-or-

Inny wątek może być spowodowany nieoczekiwaną zmianą w położeniu dojścia do pliku systemu operacyjnego.Another thread may have caused an unexpected change in the position of the operating system's file handle.

Strumień jest zamknięty.The stream is closed.

Bieżące wystąpienie strumienia nie obsługuje zapisu.The current stream instance does not support writing.

Przykłady

Ten przykład kodu jest częścią większego przykładu dostarczonego dla metody Lock.This code example is part of a larger example provided for the Lock method.

// 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 aFileStream.Length = 0 Then
    tempString = _
        lastRecordText + recordNumber.ToString()
    aFileStream.Write(uniEncoding.GetBytes(tempString), _
        0, uniEncoding.GetByteCount(tempString))
End If

Uwagi

Ta metoda przesłania Write.This method overrides Write.

Parametr offset daje przesunięcie bajtu w array (indeks buforu), w którym ma rozpocząć kopiowanie, a parametr count zwraca liczbę bajtów, które będą zapisywane w strumieniu.The offset parameter gives the offset of the byte in array (the buffer index) at which to begin copying, and the count parameter gives the number of bytes that will be written to the stream. Jeśli operacja zapisu powiedzie się, bieżąca pozycja strumienia jest zaawansowana przez liczbę zapisanych bajtów.If the write operation is successful, the current position of the stream is advanced by the number of bytes written. Jeśli wystąpi wyjątek, bieżąca pozycja strumienia nie jest zmieniana.If an exception occurs, the current position of the stream is unchanged.

Uwaga

Użyj właściwości CanWrite, aby określić, czy bieżące wystąpienie obsługuje zapisywanie.Use the CanWrite property to determine whether the current instance supports writing. Aby uzyskać dodatkowe informacje, zobacz CanWrite.For additional information, see CanWrite.

Nie przerywaj wątku wykonującego operację zapisu.Do not interrupt a thread that is performing a write operation. Mimo że aplikacja może być uruchamiana pomyślnie po odblokowaniu wątku, przerwanie może obniżyć wydajność i niezawodność aplikacji.Although the application may appear to run successfully after the thread is unblocked, the interruption can decrease your application's performance and reliability.

Aby uzyskać listę typowych operacji związanych z plikami i katalogami, zobacz typowe zadania we/wy.For a list of common file and directory operations, see Common I/O Tasks.

Zobacz też

Dotyczy