-
文件管理器(NSFileManager)此类主要是对文件进行创建/删除/改等操作,以及文件的获取
-
文件连接器(NSFileHandle)此类主要是对文件内容进行读取和写入操作.是把NSData,通过连接器一个字节一个字节的写入/读取文件(NSData<->NSFileHandle<->文件)
使用步骤:
- 文件对接并获取一个NSFileHandle对象
- 读写操作
- 关闭对接
注意:NSFileHandle类并没有提供创建文件的功能.必须使用NSFileManager方法来创建文件.因此,在使用下一页表中的方法时,都是保证文件已经存在,否则返回nil.
文件管理器的简单例子
- (void)fileManger{
//初始化一个NSFileManager对象(使用单例)
NSFileManager *manager = [NSFileManager defaultManager];
//1:获取根路径
NSString *root = NSHomeDirectory();
NSLog(@"%@",root);
//2:创建文件
root = [root stringByAppendingString:@"/text/myApp"];
//3:创建目录 withIntermediateDirectories:是否在当前路径下创建/text/myApp
[manager createDirectoryAtPath:root withIntermediateDirectories:YES attributes:nil error:nil];
NSString *rootPath = [root stringByAppendingString:@"/text3/txt"];
[manager createDirectoryAtPath:rootPath withIntermediateDirectories:YES attributes:nil error:nil];
#pragma mark---文件管理 添加----
//必须要在文件路径下添加文档,不然不能对内容进行复制,读写
NSString * root1 = [root stringByAppendingString:@"/字符串.txt"];
NSString *str = @"大家fghfghfhggfh好";
BOOL result = [str writeToFile:root1 atomically:YES encoding:4 error:nil];
//[manager createFileAtPath:root1 contents:[str dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]
if (result) {
NSLog(@"我成功了");
}else{
NSLog(@"我失败了");
}
// NSLog(@"root的路径为:%@",root);
rootPath = [rootPath stringByAppendingString:@"字符串2.txt"];
#pragma mark---文件复制---
result = [manager copyItemAtPath:root1 toPath:rootPath error:nil];
if (result) {
NSLog(@"成功");
}else{
NSLog(@"失败");
}
NSLog(@"复制成功后路径:%@",rootPath);
#pragma mark ---文件移除---
// 移除的是创建的文件, 而不是所在的文件夹
[manager removeItemAtPath:root error:nil];
NSLog(@"移除后路径:%@",root);
}
// 判断文件是否存在
if ([manager fileExistsAtPath:rootPath])
{
NSLog(@"6: 证明文件存在");
}
// : 比较两文件是否相等
if([manager contentsEqualAtPath:root1 andPath:rootPath])
{
NSLog(@"9: 两者相等'");
}
文件连接器的简单例子
- (void)fileHandle
{
// 1: 创建一个文件
NSString *filePath = [NSHomeDirectory() stringByAppendingString:@"/text.txt"];
NSString *fileContent = @"最是人间留不住,朱颜辞镜花辞树";
NSFileManager *manager = [NSFileManager defaultManager];
if ([manager createFileAtPath:filePath contents:[fileContent dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]) {
NSLog(@"1: 创建成功%@",filePath);
}
// 2: 创建第二个文件 用于写数据 ( 必须要有这个文件,才能进行内容的操作写入 )
NSString *copyPath = [NSHomeDirectory() stringByAppendingString:@"/text2.txt"];
[[NSFileManager defaultManager] createFileAtPath:copyPath contents:nil attributes:nil];
// 3: 打开text.txt 用于读操作
NSFileHandle *fileHandleRead = [NSFileHandle fileHandleForReadingAtPath:filePath];
if (!fileHandleRead)
{
NSLog(@"3: 打开filepath读功能失败");
}
// 4: 打开text2.txt 的写入操作
NSFileHandle *fileHandleWrite = [NSFileHandle fileHandleForWritingAtPath:copyPath];
if (!fileHandleWrite)
{
NSLog(@"4: 打开text2.txt 的写入操作 失败");
}
// 5: 创建 NSData 实例接收fileHandleRead数据
NSData *dataTemp = [fileHandleRead readDataToEndOfFile];
// 6: 写入到 fileHandleWrite 里面
[fileHandleWrite writeData:dataTemp];
// 7: 看能否从CopyPath中取出数据 验证效果
NSLog(@"从CopyPath中读取数据 --> %@",[NSString stringWithContentsOfFile:copyPath encoding:NSUTF8StringEncoding error:nil]);
}
网友评论