C# 程序使用 FileStream 类读取和写入字节数组到文件
给定一个文件,现在我们的任务是在 FileStream Class 的帮助下将字节数组读取和写入文件 C# 中的 Filestream 类是 System.IO 命名空间和 System.Runtime.dll 程序集的一部分。此类为支持同步和异步读写操作的文件提供流。此类可用于读取、写入、打开和关闭文件系统上的文件。输入和输出缓冲区,这就是它提供更好性能的原因。该类提供了不同类型的方法,read 和 write 方法就是其中之一。
1. Read() 方法:该方法用于从流中读取字节并将数据写入指定缓冲区。
句法:
void Read (byte[] arr, int loc, int count);
这里,arr 是一个字节数组,loc 是 arr 中将放置读取字节的字节偏移量,count 是读/写文件的总字节数。
异常:此方法也会抛出一些异常:
- ArgumentNullException:当 arr 为空时抛出此异常。
- ArgumentOutOfRangeException:当 loc 或 count 为负时抛出此异常。
- NotSupportedException:当流不支持读取时抛出此异常。
- IOException:发生 I/O 错误时抛出此异常。
- ArgumentException:当 loc 和 count 的值是数组中的无效范围时,将引发此异常。
此方法还有一个重载方法,即Read(Span
句法:
public override int Read (Span
2、Write()方法:该方法用于读取一个字节序列到文件流中。
void Write(byte[] arr, int loc, int count);
这里,arr 是一个字节数组,loc 是 arr 中从 0 开始的字节偏移量,从该偏移量开始将字节复制到流中,count 是读/写文件的总字节数。
异常:此方法也会抛出一些异常:
- ArgumentNullException:当 arr 为空时抛出此异常。
- ArgumentOutOfRangeException:当 loc 或 count 为负时抛出此异常。
- NotSupportedException:当流不支持读取时抛出此异常。
- ObjectDisposedException:关闭指定流时抛出此异常。
- IOException:发生 I/O 错误时抛出此异常。
- ArgumentException:当 loc 和 count 的值是数组中的无效范围时,将引发此异常。
此方法还有一个重载方法,即Read(Span
句法:
public override int Write(Span
使用 FileStream 类读取和写入字节数组到文件
在这个程序中,我们对文件使用了读写操作,并从文件中找到最大的元素。
C#
// C# program to read and write a byte array to
// file using FileStream Class
using System;
using System.IO;
class GFG
{
static public void Main()
{
// Initializing byte arrays
byte[] arr1 = { 4, 25, 40, 3, 11, 18, 7 };
byte[] arr2 = new byte[7];
// initializing values
byte largest = 0;
// FileStream instance
FileStream file;
file = new FileStream("GeeksforGeeks.txt",
FileMode.Create,
FileAccess.Write);
// Using write() method
// Write the bytes
file.Write(arr1, 0, 7);
// Closing the file
file.Close();
// Instantiating
file = new FileStream("GeeksforGeeks.txt",
FileMode.Open,
FileAccess.Read);
// Using Read() method
// Read the bytes
file.Read(arr2, 0, 7);
largest = arr2[0];
for (int n = 1; n < arr2.Length; n++)
{
if (largest < arr2[n])
largest = arr2[n];
}
Console.WriteLine("The largest element is : " +
largest);
// Close the file
file.Close();
}
}
输出:
The largest element is : 40