将 FileStream.ReadByte() 返回的 int 转换为字节?

Convert FileStream.ReadByte() returned int to byte?

我需要读取文件中的所有原始字节,然后将它们以字节流的形式发送。我的问题是 FileStream.ReadByte() returns 是一个整数。我无法将其转换为字节。例如:

FileStream fStream = new FileStream(filePath);
byte readByte = Convert.ToByte(fStream.ReadByte()); // Throws converted value too large for unsigned byte exception!
byteBuffer[index] = readByte; // Need the raw byte for this byte buffer.

如何在 C# 中解决这个问题?

谢谢,周末愉快!

ReadByte returns 字节,转换为 Int32,如果已到达流末尾则为 -1。当返回 -1 无法转换为字节时,您会在文件末尾遇到异常。 所以只需检查一下,例如

var tmp = fStream.ReadByte();
if (tmp == -1)
    // end of file reading
else 
    byteBuffer[index] = Convert.ToByte(tmp);