【发布时间】:2013-05-03 12:34:12
【问题描述】:
我在一个文件中有 100 MB 的数据。这 100 mb 的数据将被虚拟分割。即,我需要创建一个指向不同 5MB 块的 NSInputStream。 这可以通过使用 NSData 创建流来实现。
但我想知道我是否可以有一个指向文件中数据范围的 NSInputStream ?
【问题讨论】:
-
为什么不改用
NSFileHandle? -
基本上我不想创建几个 5MB 大小的 NSData 实例。它会占用大量内存。
-
你应该在某个串行队列中一次创建 5MB 的一部分
-
你不应该这样做。创建一个
NSFileHandle并通过执行seekToFileOffset:在任何偏移处读取适当的字节。 -
这里将从我的 iOS 应用程序上传一个很长的文件。我同时上传同一文件的不同部分。也可以有几个文件上传。如果我使用文件句柄创建数据,则此上传将需要大约 30MB,这是我不想要的。这就是为什么我想使用 NSInputStream。但是使用 NSInputStream 我无法偏移读取缓冲区。或者唯一的解决方案是将每个 5MB 数据写入一个文件并从该文件创建一个 InputStream ??
标签: ios objective-c nsstream nsinputstream cfreadstream