我在一个文件中有100 MB的数据.这个100 MB的数据将被虚拟划分.即,我需要创建一个指向不同5MB块的NSInputStream.
这可以通过使用NSData创建流来实现.
但我想知道我是否可以拥有指向文件中一系列数据的NSInputStream?
最佳答案 如果要通过将NSInputStream实例传递给NSURLRequest.HTTPBodyStream来上载文件,则必须创建NSInputStream的子类,并仅传输要上载的字节.在这里不能使用NSFileHandle.
创建一个与NSURLRequest一起使用的NSInputStream子类非常棘手,但幸运的是这里有一个关于如何实现它的great blog post.
Here you can find a ready to use subclass of NSInputStream
for this purpose.
您可以使用另一个读取文件的NSInputStream来提供ChunkInputStream,并传递开始位置和要读取的字节数.
Swift示例:
let fileInputStream = NSInputStream(fileAtPath: "/tmp/readme")
let inputStream = ChunkInputStream(inputStream: fileInputStream)
inputStream.startPosition = 2097152
inputStream.readMax = 1048576