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