我想从iOS设备的磁盘连续流式传输游戏的大型数据文件。
问题是,如果有人使用System.IO.FileStream
之前已经流式传输此类文件(块20MB)。我没有iOS设备自己测试它,我不希望下次再使用它。
有两个问题:
感谢您提供任何信息。
答案 0 :(得分:3)
MonoTouch基类库(BCL)来自Mono,所以很多代码都可以作为开源使用。在FileStream
的情况下,您可以在github上看到代码。
文件是否在没有完全加载的情况下进行流式传输(我期望从流中获得的行为,但我不确定MonoTouch的处理方式)
你没错,它不会满载。你将控制正在阅读的内容。
流媒体时的内存使用情况如何?
上面的链接显示默认缓冲区大小设置为 8192 字节(8k),但是有几个构造函数允许您使用不同的大小(如果您愿意的话)。
流媒体时的内存使用情况如何?
但是那个缓冲区是一个内部缓冲区。当您调用Read
之类的方法时,您将提供自己的缓冲区,这样您将再次控制正在使用的内存量。
加载过程的性能如何,特别是在一次加载不同文件时?
这很难预测,很大程度上取决于您的应用程序(例如文件数量,所需的总内存......)。您可以使用FileStream
异步方法(如BeginRead
)在必要时获得更好的性能。