将 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);
我需要读取文件中的所有原始字节,然后将它们以字节流的形式发送。我的问题是 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);