我正在尝试将字符串写入我的应用程序的documents文件夹中的t.t文件。我可以向其中写入字符串,但是当我向文件中写入另一个字符串时,它会覆盖另一个字符串,是否可以向文本文件中写入更多的字符串,其中字符串之间有一个空行,许多格式如下
字符串
字符串
Strine
…
我使用此代码将字符串写入文本文件,它适用于一个字符串,但不适用于多个字符串。
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];
发布于 2013-04-06 09:51:50
有几种方法可以做到这一点,这取决于您是如何实现代码的。
一种方法是将原始的.txt文件加载到NSMutableString对象中,然后将新行附加到字符串的末尾,然后重新写出文件(这种方法效率不高,特别是当您在1000个字符串、100个字符串、50个字符串等之后开始追加时)。
或者,您可以使用低级C函数"fwrite
“,并设置a
Pend位。
编辑:
既然你想看代码,下面是我的第一个建议:
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]);
}
}
https://stackoverflow.com/questions/15849339
复制相似问题