我怎样才能更快地使用readbyte函数

本文关键字:readbyte 函数 | 更新日期: 2023-09-27 18:08:05

我在c#中使用串口,我的代码是这样的:

FileStream MyFile = new FileStream(strFileDestination, FileMode.Append);
BinaryWriter bwFile = new BinaryWriter(MyFile);
bwFile.Write(serialPort1.ReadExisting());
bwFile.Close();
MyFile.Close();

使用

bwFile.Write(serialPort1.ReadByte());
不是

bwFile.Write(serialPort1.ReadExisting());

时,文件写速度从130 KB/s左右下降到28 KB/s当我使用

bwFile.Write((byte)serialPort1.ReadByte());

,写速度降为7kb/s。

我怎样才能更快地使用readbyte函数

我想知道我怎样才能像第三个命令一样写入文件,并且速度达到130 KB/s

您是否考虑过简单地使用流来写入数据?我不认为你实际上是在使用BinaryWriter在Stream.Write上提供的额外功能。

直接调用CopyTo()方法

Stream destination = new FileStream(...)
MyFile.CopyTo(destination);

调用下面的代码:

byte[] buffer = new byte[bufferSize];
int read;
while ((read = serialPort1.Read(buffer, 0, buffer.Length)) != 0)
{
    destination.Write(buffer, 0, read);
}

查看这篇文章获取更多信息:https://stackoverflow.com/a/411605/283787