I need to store certain information while my application is executing and again fetch it at the time the application starts. I tried storing it in XML using GData but didn’t succeed. I used the NSFileHandle it doesn’t give me an error but it fails to create a .txt file for read / write purpose. Is there any other way of storing and retrieving the data on the iPhone. Below is my code for NSFileHandle.
NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@'myFile.txt']; //NSFileHandle *fh = [NSFileHandle fileHandleForWritingAtPath:@'file://localhost/Users/shraddha/Desktop/info.txt']; NSFileHandle *fh = [NSFileHandle fileHandleForWritingAtPath:@'myFile.txt']; [fh seekToEndOfFile]; NSData *data = [camName dataUsingEncoding:NSASCIIStringEncoding]; [fh writeData:data]; [fh closeFile];
For Reading
NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@'myFile.txt']; //NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:@'file://localhost/Users/shraddha/Desktop/info.txt']; NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:@'myFile.txt']; if(fh == nil) return nil; else { NSData *data = [fh readDataOfLength:8]; NSString *retStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; return retStr; }
You’re trying to write to the resource directory which you probably don’t have permission to do. Try changing the first line of your code to point to the document directory:
Also, you don’t need to worry about file handles.
NSDatais capable of writing itself to disk: