C#如何控制读取ReadStream流的字节数组的大小和文件本身大小一样,然后保存到另一个地方
时间: 2023-12-06 12:44:29 浏览: 139
C#使用StreamReader读取文件的方法
使用 `FileStream` 和 `BinaryReader` 类读取流,然后使用 `File.WriteAllBytes` 方法将读取的字节数组写入到新文件中,代码示例如下:
```csharp
using System.IO;
// 读取的文件路径
string filePath = "path/to/file";
// 保存的文件路径
string savePath = "path/to/save";
// 一次读取的字节数组大小
int bufferSize = 1024;
using (FileStream fileStream = new FileStream(filePath, FileMode.Open))
{
using (BinaryReader binaryReader = new BinaryReader(fileStream))
{
long fileSize = fileStream.Length;
byte[] buffer = new byte[bufferSize];
using (FileStream saveFileStream = new FileStream(savePath, FileMode.Create))
{
int readBytes = 0;
while ((readBytes = binaryReader.Read(buffer, 0, buffer.Length)) > 0)
{
saveFileStream.Write(buffer, 0, readBytes);
}
}
}
}
```
上述代码中,我们首先定义了要读取的文件路径、保存的文件路径和一次读取的字节数组大小。然后使用 `FileStream` 类打开读取的文件,并使用 `BinaryReader` 类读取文件流中的字节数据。接着使用 `FileStream` 类创建新的文件流,并使用 `File.WriteAllBytes` 方法将读取的字节数组写入到新文件中。在读取文件流时,我们使用一个 while 循环来不断读取字节数据,并将读取的字节数组写入到新文件流中,直到文件流中没有数据可读取为止。
阅读全文