【问题标题】:How to create a new text file to write to in objective c ipad app如何在目标 c ipad 应用程序中创建要写入的新文本文件
【发布时间】:2013-06-01 11:35:51
【问题描述】:

我将如何在我的程序中创建一个新的文本文件以便我可以向其中写入内容?我已经了解如何编写内容,但我找不到任何关于该主题的内容(任何易于理解的内容)。

【问题讨论】:

    标签: ios objective-c file


    【解决方案1】:

    使用这个方法:

    + (id)stringWithContentsOfFile:(NSString *)path
                      usedEncoding:(NSStringEncoding *)enc
                             error:(NSError **)error
    

    一个例子:

    NSString* path = [[NSBundle mainBundle] pathForResource:@"Example"
                                                     ofType:@"txt"];
    NSError *error = nil;
    NSString* content = [NSString stringWithContentsOfFile:path
                                                  encoding:NSUTF8StringEncoding
                                                     error:&error];
    
    if(error) 
    { 
        NSLog(@"ERROR while loading from file: %@", error);
    }
    

    写入文件的工作方式如下: 使用这个方法:

     - (BOOL)writeToFile:(NSString *)path 
              atomically:(BOOL)useAuxiliaryFile 
                encoding:(NSStringEncoding)enc 
                   error:(NSError **)error
    

    例子:

    [text writeToFile:path atomically:NO  encoding:NSUTF8StringEncoding error:nil];
    

    错误:

    不能只写入捆绑路径。需要将其复制到文档目录。

    -(void)copyBundleToDocuments
    {
        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [documentPaths objectAtIndex:0];
        NSString *documentPlistPath = [documentsDirectory stringByAppendingPathComponent:@"Example.txt"];
        NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
        NSString *bundlePlistPath = [bundlePath stringByAppendingPathComponent:@"Example.txt"];
    
            NSError *error;
            BOOL success = [fileManager copyItemAtPath:bundlePlistPath toPath:documentPlistPath error:&error];
            if (success) 
            {
                [text writeToFile:documentPlistPath atomically:NO  encoding:NSUTF8StringEncoding error:nil];
            }
    }
    

    【讨论】:

    • 不过,请确保writeToFile: 中的path 没有指向只读主包。
    • gd 点 -> 忘记了。无法写入只读路径...将编辑答案。
    【解决方案2】:

    你的问题太宽泛了,一个人可以开一辆卡车(或卡车,用英国英语)穿过它。

    但通常,您可以将 UITextView 添加到您的视图控制器之一。

    当您准备好保存时,您可以获取文本视图的内容(这是一个 NSString),并通过 NSString writeToFile 方法将其保存到文件中。

    您可以稍后通过 NSString 的“initFromFile”方法加载文本视图,只要您知道该文件的路径即可。

    Hereare other questionsthat people have asked这可能会帮助你。

    【讨论】:

      【解决方案3】:

      你可以使用 UITextView 来写文字

      使用保存文件

           [txtView.text writeToFile:filePath atomically:NO  encoding:NSUTF8StringEncoding error:nil];
      

      使用获取 TextFile 内容

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

      【讨论】:

      • 但这仅适用于已经存在的文本文件,不是吗?
      • 您可以使用 writeTofile 创建新的文本文件,这会将您的文本写入文件...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 2022-11-10
      • 1970-01-01
      相关资源
      最近更新 更多