使用[NSBundle mainBundle]写文件失败 [英] File write with [NSBundle mainBundle] fails
问题描述
我试图从一个文件中获取内容,并将其写入另一个文件。我读得很好,但我不能写入另一个文件。
I am trying to take content from one file and write it into another. I am reading fine, but I am not able to write it into another file.
我有一个数据库的单词。我想根据字母数量将单词分成不同的文件。所有四个字母的单词进入一个文件,等等。我在我的资源中添加了一个名为4letter的txt文件,以下是我的代码:
I have a database of words. I want to separate the words into different files based on the number of letters. All four letter words go into one file, and so on. I added a txt file called "4letter" into my resources and the following is my code:
NSError *error;
//READ
NSString *dbFile = [[NSBundle mainBundle] pathForResource:@"words" ofType:@"txt"];
NSString *test = [NSString stringWithContentsOfFile:dbFile encoding:NSUTF8StringEncoding error:&error];
//convert from string to array
NSArray *lines = [test componentsSeparatedByString:@"\n"];
NSFileHandle *logFile = nil;
logFile = [NSFileHandle fileHandleForWritingAtPath:[[NSBundle mainBundle] pathForResource:@"4letter" ofType:@"txt"]];
//Test if write works
for (int i=0; i<5; i++)
{
NSString *randomAnagram = [[lines objectAtIndex:i] lowercaseString];
[logFile writeData: [randomAnagram dataUsingEncoding: NSNEXTSTEPStringEncoding]];
}
推荐答案
写入应用程序包中的文件 - 整个包是只读的。使用文档文件夹中的路径。
In iOS, you can't write into a file in your app's bundle -- the entire bundle is read-only. Use a path into the Documents folder instead.
这篇关于使用[NSBundle mainBundle]写文件失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!