Example for file read/write with NSFileHandle
file-io, filereader, filewriter, objective-c
Solution
Needs to change `outputFileHandle` line:
outputFileHandle = [NSFileHandle fileHandleForWritingAtPath: self.outputFilePath];
Problem
Are there good examples for doing file read/write in chunks with objective c? I am new to objective-c and iPhone API, here is the sample code that I wrote. Are there better ways to do it? ``` -(void) performFileOperation { @try { NSFileHandle *inputFileHandle; NSFileHandle *outputFileHandle; //check whether the output file exist, if not create a new one. NSFileManager *morphedFileManager; outputFileManager = [NSFileManager defaultManager]; if ([outputFileManager fileExistsAtPath: self.outputFilePath ] == NO) { NSLog (@"Output file does not exist, creating a new one"); [outputFileManager createFileAtPath: self.outputFilePath contents: nil attributes: nil]; } NSData *inputDataBuffer; inputFileHandle = [NSFileHandle fileHandleForReadingAtPath: self.inputFilePath]; NSAssert( inputFileHandle != nil, @"Failed to open handle for input file" ); outputFileHandle = [NSFileHandle fileHandleForReadingAtPath: self.outputFilePath]; NSAssert( outputFileHandle != nil, @"Failed to open handle for output file" ); @try{ // seek to the start of the file [inputFileHandle seekToFileOffset: 0]; [outputFileHandle seekToFileOffset: 0]; while( (inputDataBuffer = [inputFileHandle readDataOfLength: 1024]) != nil ) { [outputFileHandle writeData: [self.fileWrapper process: inputDataBuffer]]; } } @catch (NSException *exception) { @throw; } @finally { [inputFileHandle closeFile]; [outputFileHandle closeFile]; } } @catch (NSException *exception) { @throw; } } ``` I get the following exception while trying to write: ``` Failed to process input buffer ( *** -[NSConcreteFileHandle writeData:]: Bad file descriptor ) ```