使用Objective-C以编程方式读取文本文件

时间:2009-09-29 12:47:46

标签: iphone text file

我是iPhone编程新手

我想阅读我的Resourse文件夹中的文本文件的内容。我做了很多谷歌搜索,但未能正确地完成这项任务。

请建议

2 个答案:

答案 0 :(得分:145)

“资源文件夹”中的文件实际上是应用程序包的内容。首先,您需要在应用程序包中获取文件的路径。

NSString* path = [[NSBundle mainBundle] pathForResource:@"filename" 
                                                 ofType:@"txt"];

然后将内容加载到NSString更加容易。

NSString* content = [NSString stringWithContentsOfFile:path
                                              encoding:NSUTF8StringEncoding
                                                 error:NULL];

作为奖励,您可以拥有 filename.txt 的不同本地化版本,此代码将正确获取当前所选语言的文件。

答案 1 :(得分:8)

您要做的第一件事是获取您想要阅读的文本文件的路径。因为它在你的Resources文件夹中,所以我假设你将它复制到应用程序的主包中。您可以使用NSBundle的pathForResource:ofType:

获取主包中文件的路径
NSBundle *mainBundle = [NSBundle mainBundle];
NSString *filePath = [mainBundle pathForResource:@"filename" ofType:@"txt"];

然后,您可以使用initWithContentsOfFile:usedEncoding:error:

直接将该路径中的文件读入NSString
NSStringEncoding encoding;
NSError *error;
NSString *fileContents = [[[NSString alloc] initWithContentsOfFile:filePath
                                                      usedEncoding:&encoding
                                                             error:&error]
                          autorelease];