如何使用 NSFileHandle 打开文本文件

Posted

技术标签:

【中文标题】如何使用 NSFileHandle 打开文本文件【英文标题】:how to open text file with NSFileHandle 【发布时间】:2011-06-14 22:36:42 【问题描述】:

我正在尝试打开一个小文本文件来测试文件上的一些 NSFileHandle 函数。但是我不知道该怎么做,如果你能告诉我我错过了什么,那就太好了。

//.h

@interface MainViewController : UIViewController <FlipsideViewControllerDelegate> 
    NSFileHandle *nCode;

@property (nonatomic, retain) IBOutlet NSFileHandle *nCode;

- (IBAction)showInfo:(id)sender;

//check for code
- (void)fetchCode:(id)sender; //this function is attached to a button in the .nib

@end

//.m

- (void)fetchCode:(id)sender
nCode = [NSFileHandle fileHandleForReadingAtPath:@"nCode01.txt"];

if (nCode == nil) 
    NSLog (@"Open of nCode for reading failed\n");
    return;


 [nCode closeFile];

我在这里所做的只是尝试打开文件,但是每次按下按钮时,我都会收到错误消息“打开 nCode 以读取失败”......我做错了什么?

从这里我希望找到一种方法让用户输入一个代表文本文件中一行的数字,然后返回该行中的文本..有人知道这样做的方法吗?有可能吗?

【问题讨论】:

我已将它放入我的文件包中的资源文件中 【参考方案1】:

问题很可能出在文件路径上,因为您没有指定完整的路径名。当您想访问应用程序包中的文件时,请使用-[NSBundle pathForResource:ofType]

NSString *path = [[NSBundle mainBundle] pathForResource:@"nCode01"
                                                 ofType:@"txt"];
nCode = [NSFileHandle fileHandleForReadingAtPath:path];

【讨论】:

Arr...我看到这和你在初始化数据库时所做的一样痛苦...我应该知道这一点.. 对目标 C 来说还是新手,但似乎很难小姐.. :( 谢谢你。

以上是关于如何使用 NSFileHandle 打开文本文件的主要内容,如果未能解决你的问题,请参考以下文章

Foundation框架中的NSFileHandle二

NSFileHandle类和NSFileManager,追加数据的操作

NSFileHandle 从视频文件中读取损坏的数据

iOS ALAssetsLibrary 和 NSFileHandle 读取文件内容

iOS:用于大文件下载的 NSFileHandle 与 NSOutputStream

NSFileManager和NSFileHandle