首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在文本文件的追加模式下编写

如何在文本文件的追加模式下编写
EN

Stack Overflow用户
提问于 2011-01-24 16:12:56
回答 3查看 28.4K关注 0票数 21

我的应用程序基于导航。notes UIViewController的UItextView。我正在将文本数据写入文件。现在我需要在附加模式下编写,下面的代码我正在尝试,但每次都是用相同的文本数据写入两次,而不是将下一个文本数据附加到文件中。

代码语言:javascript
复制
- (void)saveText:(id)sender
{
    [self.textview resignFirstResponder];
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [documentPaths objectAtIndex:0];
    NSString *documentTXTPath = [documentsDirectory stringByAppendingPathComponent:@"Notes.txt"];
    NSString *savedString = textview.text;
    [savedString writeToFile:documentTXTPath atomically:YES];


    NSFileHandle *myHandle = [NSFileHandle fileHandleForUpdatingAtPath:documentTXTPath ];
    [myHandle seekToEndOfFile];
    [myHandle writeData:  [savedString dataUsingEncoding:NSUTF8StringEncoding]];
    [myHandle closeFile];

}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-24 16:19:40

删除以下代码行

代码语言:javascript
复制
[savedString writeToFile:documentTXTPath atomically:YES];

和其余的代码都很好。无论如何,也要检查我的代码,

代码语言:javascript
复制
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *documentTXTPath = [documentsDirectory stringByAppendingPathComponent:@"Notes.txt"];
    NSString *savedString = textview.text;
    NSFileHandle *myHandle = [NSFileHandle fileHandleForWritingAtPath:documentTXTPath];
    [myHandle seekToEndOfFile];
    [myHandle writeData:[savedString dataUsingEncoding:NSUTF8StringEncoding]];
票数 32
EN

Stack Overflow用户

发布于 2013-03-07 14:05:26

试试这个,效果很好。

代码语言:javascript
复制
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *documentTXTPath = [documentsDirectory stringByAppendingPathComponent:@"Notes.txt"];
NSString *savedString = textview.text;

如果文件不存在,则创建该文件并写入文件或将其已创建的文件追加到文件的末尾

代码语言:javascript
复制
NSFileManager *fileManager = [NSFileManager defaultManager];
if(![fileManager fileExistsAtPath:documentTXTPath])
{
  [savedString writeToFile:documentTXTPath atomically:YES];
}
else
{
  NSFileHandle *myHandle = [NSFileHandle fileHandleForWritingAtPath:documentTXTPath];
  [myHandle seekToEndOfFile];
  [myHandle writeData:[savedString dataUsingEncoding:NSUTF8StringEncoding]];
}
票数 29
EN

Stack Overflow用户

发布于 2014-11-19 19:07:04

你也可以这样做

代码语言:javascript
复制
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *documentTXTPath = [documentsDirectory stringByAppendingPathComponent:@"Notes.text"];
NSString *content = [NSString stringWithContentsOfFile:documentTXTPath encoding:NSUTF8StringEncoding error:nil];
content = [content stringByAppendingString:data];

并再次将内容写入特定的文件路径

代码语言:javascript
复制
[content writeToFile:documentTXTPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4779877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档