4

我在一个文件中有 100 MB 的数据。这 100 mb 的数据将被虚拟分割。即,我需要创建一个指向不同 5MB 块的 NSInputStream。这可以通过使用 NSData 创建流来实现。

但是我想知道我是否可以拥有一个指向文件中数据范围的 NSInputStream ?

4

1 回答 1

4

如果您想通过将NSInputStream实例传递给您来上传文件,则NSURLRequest.HTTPBodyStream确实必须创建一个子类NSInputStream并且只流式传输您要上传的字节。在这里使用NSFileHandle不是一个选项。

创建一个NSInputStream与之一起工作的子类NSURLRequest非常棘手,但幸运的是,这里有一篇很棒的博客文章,介绍了如何完成它。

在这里你可以找到一个现成的NSInputStream用于此目的的子类。

您可以ChunkInputStream提供另一个NSInputStream读取文件并传递开始位置和要读取的字节数。

快速示例:

let fileInputStream = NSInputStream(fileAtPath: "/tmp/readme")
let inputStream = ChunkInputStream(inputStream: fileInputStream)
inputStream.startPosition = 2097152
inputStream.readMax = 1048576
于 2015-08-06T19:58:53.013 回答