FileStream.Write 方法

定义

重载

Write(ReadOnlySpan<Byte>)

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

Write(Byte[], Int32, Int32)

将字节块写入文件流。

Write(ReadOnlySpan<Byte>)

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

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

C#
public override void Write (ReadOnlySpan<byte> buffer);

参数

buffer
ReadOnlySpan<Byte>

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

例外

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

注解

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

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

适用于

.NET 9 和其他版本
产品 版本
.NET Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

Write(Byte[], Int32, Int32)

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

将字节块写入文件流。

C#
public override void Write (byte[] array, int offset, int count);
C#
public override void Write (byte[] buffer, int offset, int count);

参数

arraybuffer
Byte[]

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

offset
Int32

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

count
Int32

最多写入的字节数。

例外

arraynull

offsetcount 描述 array中的无效范围。

offsetcount 为负数。

出现 I/O 错误。

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

-或-

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

流已关闭。

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

示例

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

C#
// Write the original file data.
if(fileStream.Length == 0)
{
    tempString =
        lastRecordText + recordNumber.ToString();
    fileStream.Write(uniEncoding.GetBytes(tempString),
        0, uniEncoding.GetByteCount(tempString));
}

注解

此方法重写 Write

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

备注

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

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

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

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0