一.在Documents、tmp和Library中存储文件
Documents:用于存储应用程序中经常需要读取或写入的常规文件。
tmp:用于存储应用程序运行时生成的文件。(随着应用程序的关闭失去了利用价值)
Library:一般存放应用程序的配置文件,比如说plist类型的文件。
二.读取和写入文件
1.新建Empty Application应用程序,添加HomeViewController文件
HomeViewController.h代码:
#import <UIKit/UIKit.h>
@interface HomeViewController : UIViewController
{
}
- (NSString *) documentsPath;//负责获取Documents文件夹的位置
- (NSString *) readFromFile:(NSString *)filepath; //读取文件内容
- (void) writeToFile:(NSString *)text withFileName:(NSString *)filePath;//将内容写到指定的文件
@end
HomeViewController.m代码:
#import "HomeViewController.h"
@interface HomeViewController ()
@end
@implementation HomeViewController
//负责获取Documents文件夹的位置
- (NSString *) documentsPath{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsdir = [paths objectAtIndex:0];
return documentsdir;
}
//读取文件内容
- (NSString *) readFromFile:(NSString *)filepath{
if ([[NSFileManager defaultManager] fileExistsAtPath:filepath]){
NSArray *content = [[NSArray alloc] initWithContentsOfFile:filepath];
NSString *data = [[NSString alloc] initWithFormat:@"%@", [content objectAtIndex:0]];
[content release];
return data;
} else {
return nil;
}
}
//将内容写到指定的文件
- (void) writeToFile:(NSString *)text withFileName:(NSString *)filePath{
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:text];
[array writeToFile:filePath atomically:YES];
[array release];
}
-(NSString *)tempPath{
return NSTemporaryDirectory();
}
- (void)viewDidLoad
{
NSString *fileName = [[self documentsPath] stringByAppendingPathComponent:@"content.txt"];
//NSString *fileName = [[self tempPath] stringByAppendingPathComponent:@"content.txt"];
[self writeToFile:@"苹果的魅力!" withFileName:fileName];
NSString *fileContent = [self readFromFile:fileName];
NSLog(fileContent);
[super viewDidLoad];
}
@end
效果图:
致力于ios开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架