2014-04-10 1 views
0

iOS 앱에서 큰 파일을 업로드하고 파일 전송이 청크 업로드로되어 있습니다. 나는 청크에 대한 NSInputStream 초기화하려면 아래의 코드를 사용하고 있습니다.파일의 특정 부분에서 NSInputStream을 초기화하는 중 (문서 디렉토리에서 복사)?

예를

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]; 
    } 

에 대한

//하지만 난 내가 파일 스트림보다는있는 NSData의 범위에서 IStream을을 초기화 할 수있는 NSInputStream하는 방법이있을 수 있는지 알고 싶습니다.

감사

+0

이론적으로 NSInputStream의 하위 클래스가 될 수 있지만 까다로운 것처럼 보입니다. http://bjhomer.blogspot.de/2011/04/subclassing-nsinputstream.html을 참조하십시오. –

답변

1

파일 스트림 오프셋 읽기 지정하는 방법에 대한 NSStreamFileCurrentOffsetKey 특성이있다.

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

예제 코드가 있습니까? –

+0

@iOS_Developer, 내 의견에 업데이트를 참조하십시오. –