【问题标题】:How to write in a txt-file, iOS 7如何在 txt 文件中写入,iOS 7
【发布时间】:2014-02-05 19:20:24
【问题描述】:

我正在尝试为 iOS 7 制作 iPhone 应用。 我在我的项目中创建了一个 txt 文件,并且希望能够从 txt 文件中写入文本,当我按下写入按钮时,写入并能够读取数据,当我按下读取按钮时,阅读。

当我尝试读取数据时,我发现此方法有效:

- (IBAction)load:(id)sender {
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"text" ofType:@"txt"];
if (filePath) {
    NSString *stringFromFile = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
    [TextView setText:stringFromFile];
}

}

在另一个按钮上,我希望它将数据写入我项目中的 txt 文件。 我尝试了很多方法,但没有一个真正有效——它不会在文件中写入文本。 我找到了一种方法,它可以工作 50%。这意味着它无法保存我告诉它写的文本,它只显示它把文本放在文本框中。

代码:

- (IBAction)write:(id)sender {

    NSString *documentsDirectory = [NSHomeDirectory()
                                    stringByAppendingPathComponent:@"Documents"];

    NSString *filePath = [documentsDirectory
                          stringByAppendingPathComponent:@"text"];


    //NSString *filePath = [[NSBundle mainBundle] pathForResource:@"text" ofType:@"txt"];

    NSString *printString = [NSString stringWithFormat:@"The new text"];

    [printString writeToFile:filePath atomically:NO encoding:NSUTF8StringEncoding error:nil];

    if (filePath) {
        NSString *stringFromFile = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
        [TextView setText:stringFromFile];
    }
}

谁能帮帮我? 提前致谢! :)

【问题讨论】:

  • 为什么要写入文本文件?
  • 在 writeToFile: 中捕获错误,而不是传递 nil!

标签: ios file text


【解决方案1】:

您可以使用以下功能:

-(void) writeToTextFile
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains
        (NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", 
                                                  documentsDirectory];
    NSString *content = @"Your Desired Content";
    [content writeToFile:fileName 
                     atomically:NO 
                           encoding:NSStringEncodingConversionAllowLossy 
                                  error:nil];

}

【讨论】:

  • 不要使用stringWithFormat: 构建路径。像问题中的OP一样使用stringByAppendingPathComponent
  • 并捕获错误...大多数此类调用确实允许传递 NSError 对象是有原因的。
  • UpVote 并接受答案。
猜你喜欢
  • 2020-04-21
  • 2012-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-24
  • 2017-06-01
  • 1970-01-01
  • 2012-07-19
相关资源
最近更新 更多