子类化NSInputStream,从本地文件路径上传数据的特定部分



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

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

如果你想通过传递一个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

相关内容

  • 没有找到相关文章

最新更新