/*
* 文件追加数据
*/
// 获取当前用户 路径 /Users/xxh
NSString *homePath = NSHomeDirectory();
NSLog(@"homePath : %@", homePath);
// 文件路径
NSString *filePath = [homePath stringByAppendingPathComponent:@"Desktop/appendData.text"];
NSLog(@"filePath : %@", filePath);
// 创建文件操作对象
NSFileHandle *fileHanddle = [NSFileHandle fileHandleForUpdatingAtPath:filePath];
// 移动到文件未尾
[fileHanddle seekToEndOfFile];
// 移动到指定的位置 此操作会覆盖指定偏移量之后的数据
//[fileHanddle seekToFileOffset:10];
// 追加的数据
NSString *str = @"追加的数据";
// 数据编码成 NSData
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
// 文件中追加数据
[fileHanddle writeData:data];
// 关闭文件操作
[fileHanddle closeFile];
/*
* 文件定位数据
*/
// 获取当前用户 路径 /Users/xxh
NSString *homePath = NSHomeDirectory();
NSLog(@"homePath : %@", homePath);
// 文件路径
NSString *filePath = [homePath stringByAppendingPathComponent:@"Desktop/appendData.text"];
// 创建文件操作对象
NSFileHandle *fileHanddle = [NSFileHandle fileHandleForReadingAtPath:filePath];
// 获取可用数据长度
NSInteger length = [fileHanddle availableData].length;
// 设置文件位置的偏移量 文件位置一半的位置
[fileHanddle seekToFileOffset:length/2];
// 从一半开始 将数据读到文件最后
NSData *data = [fileHanddle readDataToEndOfFile];
// 转换成字符串
NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", str);
// 关闭文件操作对象
[fileHanddle closeFile];
/*
* 复制文件
*/
// 获取当前用户 路径 /Users/xxh
NSString *homePath = NSHomeDirectory();
NSLog(@"homePath : %@", homePath);
// 文件路径
NSString *filePath = [homePath stringByAppendingPathComponent:@"Desktop/appendData.text"];
NSString *tagetPath = [homePath stringByAppendingPathComponent:@"Desktop/copyData.text"];
// 创建文件操作对象
NSFileManager *fileManager = [NSFileManager defaultManager];
// 创建目标文件
BOOL success = [fileManager createFileAtPath:tagetPath contents:nil attributes:nil];
if (success) {
NSLog(@"create success");
}
// 写数据
NSFileHandle *outFileHandle = [NSFileHandle fileHandleForWritingAtPath:tagetPath];
// 文件操作对象
NSFileHandle *inFileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];
//
// 读数据 [inFileHandle availableData];
NSData *data = [inFileHandle readDataToEndOfFile];
// 写数据
[outFileHandle writeData:data];
// 关闭文件操作对象
[outFileHandle closeFile];
[inFileHandle closeFile];