c# - 从每 6 秒更新一次的二进制日志文件读取 12k 数据

标签 c# filestream binaryreader

我有一个二进制日志文件,其中包含来自传感器 (Int16) 的流数据。
每 6 秒添加 6000 个 Int16 类型的样本,直到传感器断开连接。

我需要定期轮询此文件,从上次读取的位置继续。 是不是更好 a) 在读取之间保持文件流和二进制读取器打开并实例化 b) 每次我需要读取时实例化文件流和二进制读取器(并保留一个外部变量来跟踪最后读取的位置) c) 更好的东西?

编辑:目前有一些很好的建议,需要补充一点,“服务器”应用程序由外部源供应商提供,无法修改。

最佳答案

如果它总是添加相同数量的数据,那么重新打开它可能是有意义的。您可能想在打开它之前找出长度,然后四舍五入到可用“样本集”的总数,以防万一您在它仍在写入数据时捕获它。这可能意味着您阅读的内容少于您可以阅读的内容(如果写入在您检查长度和开始读取之间完成),但您下次会 catch 。

您需要确保使用适当的共享选项,以便作者在您阅读时仍然可以写作。 (作者可能也必须考虑到这一点。)

关于c# - 从每 6 秒更新一次的二进制日志文件读取 12k 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1170538/

相关文章:

c# - 在 Unity3D 的build设置中获取下一个场景的名称?

c# - 在 Java 和 C# 中将 UTC 时间转换为本地时间

c++ - 如何让函数访问其他 .cpps 变量?

c++ - 是否可以使用 C++ 流类来缓冲从管道读取的数据?

BinaryReader ReadInt32() 返回的数字太大

c# - 添加模型错误 MVC 后如何使验证消息消失?

c# - 如何解决私有(private)字节( native 内存)泄漏?

c# - 使用中的文件流

c# - EndianBinaryReader - 输入流的连续更新?

c# - 动态操作自适应 IInputStream (MPEG-DASH)