如何在文本文件的附录模式下写入
-
23-10-2019 - |
题
我的申请导航基于。 uitextView for Notes uiviewController。我正在编写用于文件的文本数据。现在,我需要在附录模式下写入以下代码,但是每次都使用相同的文本数据写入两次,如果下一个文本数据为文件,则不附加附加。
- (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];
}
解决方案
删除以下代码行
[savedString writeToFile:documentTXTPath atomically:YES];
剩余的代码都可以。无论如何也检查我的代码,
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]];
其他提示
尝试一下,它很棒
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *documentTXTPath = [documentsDirectory stringByAppendingPathComponent:@"Notes.txt"];
NSString *savedString = textview.text;
如果文件不存在并将其写入文件,否则它已经创建了已创建的附加到文件的结尾
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]];
}
你也可以做
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];
并再次将内容写入特定的文件路径
[content writeToFile:documentTXTPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
不隶属于 StackOverflow