0

我正在创建一个与心电图监视器通信的应用程序。以每秒 250 个样本的速率读取数据。来自 ECG 监视器的每个包包含 80 个字节,每秒接收 40 次。

我试过使用 RandomAcccessFile,但包在同步 RandomAccessFile(outputFile, "rws")和异步 RandomAccessFile(outputFile, "rw")模式下都丢失了。

在最近的一个实验中,我尝试使用 MappedByteBuffer。这应该非常高效,但是当我创建缓冲区时,我必须指定map(FileChannel.MapMode.READ_WRITE, 0, 10485760)10MB 缓冲区的大小。但这会导致文件大小始终为 10MB。是否可以使用 MappedByteBuffer ,其中文件大小只是实际存储的数据量?

还是有另一种方法可以实现这一目标?这么频繁地写入文件是不是很幼稚?

附带说明一下,这在 iOS 上根本不是问题 - 这可以在完全没有缓冲的情况下实现。

4

0 回答 0