0

我正在尝试将字符串写入应用程序文档文件夹中的 tt 文件。我可以将字符串写入其中,但是当我将另一个字符串写入文件时,它会覆盖另一个字符串,是否可以将更多字符串写入文本文件,字符串之间有一个空行,很多都是这种格式

细绳

细绳

斯特林

…</p>

我正在使用此代码将字符串写入文本文件,它适用于一个字符串,但不适用于多个字符串。

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

        //make a file name to write the data to using the documents directory:
        NSString *fileName = [NSString stringWithFormat:@"%@/Barcodedata.txt",
                              documentsDirectory];
        //create content - four lines of text
        NSString *content = [NSString stringWithFormat:@"%@",sym.data];
        //save content to the documents directory
        [content writeToFile:fileName
                  atomically:NO
                    encoding:NSStringEncodingConversionAllowLossy
                       error:nil];
4

1 回答 1

2

有几种方法可以做到这一点,具体取决于您实现代码的方式。

一种方法是将原始 .txt 文件加载到 NSMutableString 对象中,然后将该新行附加到字符串的末尾并重新写出文件(这不是超级有效,尤其是当您在 1000 之后开始附加时弦、100 弦、50 弦等)

或者您可以使用设置了附加位的低级 C 函数“ fwrite” 。a

编辑:

由于您想查看代码,因此我的第一个建议如下:

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

//make a file name to write the data to using the documents directory:
NSString *fileName = [NSString stringWithFormat:@"%@/Barcodedata.txt", documentsDirectory];
//create content - four lines of text

NSError * error = NULL;
NSStringEncoding encoding;
NSMutableString * content = [[NSMutableString alloc] initWithContentsOfFile: fileName usedEncoding: &encoding error: &error];
if(content == NULL)
{
    // if the file doesn't exist yet, we create a mutable string
    content = [[NSMutableString alloc] init];
}

if(content)
{
    [content appendFormat: @"%@", sym.data];

    //save content to the documents directory
    BOOL success = [content writeToFile:fileName
                            atomically:NO
                              encoding:NSStringEncodingConversionAllowLossy
                                 error:&error];

    if(success == NO)
    {
        NSLog( @"couldn't write out file to %@, error is %@", fileName, [error localizedDescription]);
    }
}
于 2013-04-06T09:51:50.127 回答