C#/如何从流中删除旧数据

C#/如何从流中删除旧数据,c#,android,C#,Android,伙计们 我正在使用下面的代码从蓝牙设备接收数据,有用的信息会在“F”出现后立即结束,然后会收到“\r”和“\n” 问题是,当程序再次开始接收数据时,前两个字节是“\r”和“\n” 我尝试过dispose()、close()和flush(),但是当代码再次到达wile循环时,字符串分隔符(\r和\n)仍然存在。 我只需要在接收新字节之前删除旧数据 int i1 = 0; while (true) { datum[i1] = await Task.Run(() => (byte)Inm

伙计们

我正在使用下面的代码从蓝牙设备接收数据,有用的信息会在“F”出现后立即结束,然后会收到“\r”和“\n”

问题是,当程序再次开始接收数据时,前两个字节是“\r”和“\n”

我尝试过dispose()、close()和flush(),但是当代码再次到达wile循环时,字符串分隔符(\r和\n)仍然存在。 我只需要在接收新字节之前删除旧数据

int i1 = 0;
while (true)
{
    datum[i1] = await Task.Run(() => (byte)InmStream.ReadByte());
    int datum_check = datum[i1];
    if (datum_check == 70) // F (char) = 70  
        {
            datum[i1] = Convert.ToByte(10); // replaces the F by '\n'
            break;
        }
        i1++;
}
在第一次运行代码时收到的前7个字节(从基准[0]到基准[6])是:3、\r\n、3、5、\r和\n

在第二次运行和运行时收到的7个字节是:\r\n,3,\r\n,3,5

有什么建议吗?提前谢谢


值得一提的是,我的背景来自完全不同的领域。

可能这些字节仍在蓝牙设备的硬件缓冲区中。它可以解释为什么关闭或刷新流没有效果。@RJM确实,一开始它似乎应该与硬件有关。问题是,如果我使用智能手机上的超级终端接收信息,每次都能正确显示数据。不管怎样,谢谢。也许那些字节还在蓝牙设备的硬件缓冲区中。它可以解释为什么关闭或刷新流没有效果。@RJM确实,一开始它似乎应该与硬件有关。问题是,如果我使用智能手机上的超级终端接收信息,每次都能正确显示数据。无论如何,谢谢你。