FileStream.Write 方法

定义

重载

Write(ReadOnlySpan<Byte>)

将字节的序列从只读范围写入当前文件流,并按写入的字节数向前移动此文件流中的当前位置。

Write(Byte[], Int32, Int32)

将字节块写入文件流。

Write(ReadOnlySpan<Byte>)

Source:
FileStream.cs
Source:
FileStream.cs
Source:
FileStream.cs

将字节的序列从只读范围写入当前文件流,并按写入的字节数向前移动此文件流中的当前位置。

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))

参数

buffer
ReadOnlySpan<Byte>

内存的区域。 此方法将此区域的内容复制到当前文件流。

例外

.NET 8 及更高版本:基础管道已关闭或断开连接。

注解

CanWrite使用 属性确定当前实例是否支持写入。 WriteAsync使用 方法以异步方式写入当前流。

如果写入操作成功,则文件流中的位置将按写入的字节数前进。 如果发生异常,则文件流中的位置保持不变。

适用于

Write(Byte[], Int32, Int32)

Source:
FileStream.cs
Source:
FileStream.cs
Source:
FileStream.cs

将字节块写入文件流。

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)

参数

arraybuffer
Byte[]

包含要写入该流的数据的缓冲区。

offset
Int32

array 中的从零开始的字节偏移量,从此处开始将字节复制到该流。

count
Int32

最多写入的字节数。

例外

arraynull

offsetcount 描述 array中的无效范围。

offsetcount 为负数。

出现 I/O 错误。

另一个线程可能导致操作系统的文件句柄的位置发生意外更改。

-或-

.NET 8 及更高版本:基础管道已关闭或断开连接。

流已关闭。

当前的流实例不支持写入。

示例

此代码示例是为 方法提供的更大示例的 Lock 一部分。

// 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

注解

此方法重写 Write

offset参数提供 (缓冲区索引) 开始复制的字节array的偏移量,参数count提供将写入流的字节数。 如果写入操作成功,则流的当前位置将比写入的字节数提前。 如果发生异常,流的当前位置保持不变。

注意

CanWrite使用 属性确定当前实例是否支持写入。 有关附加信息,请参见 CanWrite

不要中断正在执行写入操作的线程。 尽管在取消阻止线程后,应用程序似乎可以成功运行,但中断可能会降低应用程序的性能和可靠性。

有关常见文件和目录操作的列表,请参阅 常见 I/O 任务

另请参阅

适用于