简体   繁体   中英

initialising NSInputStream from a particular portion of file (copied in Document directory)?

I am uploading a large file from my iOS app and file transfer is in chunk upload. i am using the below code to initialise NSInputStream for Chunks.

// for example

NSInteger chunkCount =  20;
for(int i=0; i<chunkCount; i++) {
  NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:filePath];
  [handle seekToFileOffset:(unsigned long long)i * (chunkCount == 1?fileSize:chunkSize)];
  NSData *fileData = [handle readDataOfLength:chunkSize];
  NSInputStream *iStream = [[NSInputStream alloc]initWithData:fileData];
  }

But I'd like to know if I can have a method of NSInputStream by which i can initialise iStream from the range of file Stream rather than NSData.

Thanks

There is NSStreamFileCurrentOffsetKey property for file streams to specify read offset.

NSInputStream *s = [NSInputStream inputStreamWithFileAtPath:path];
[s setProperty:offset forKey:NSStreamFileCurrentOffsetKey];

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM