ObjectiveC(13)_NSFileHandle

版权声明:本博客主要记录学习笔记和遇到的一些问题解决方案,转载请注明出处! https://blog.csdn.net/u010982507/article/details/82941471

NSFileHandle常用方法

  • 读文件
NSString *homePath = NSHomeDirectory(); // 获取用户目录/Users/renzhongrui
NSLog(@"home path:%@",homePath);	
NSString *fileName = @"/workspace/ioswork/OCSpace/016_iOS_NSFile/016_iOS_NSFile/test.txt";
NSString *filePath = [homePath stringByAppendingPathComponent:fileName];
// 读取文件所有内容
NSFileHandle *fileHandle1 = [NSFileHandle fileHandleForReadingAtPath:filePath];
NSData *data = [fileHandle1 availableData];// 获取文件中的内容,返回类型是NSData
NSString *content = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];// 将NSData转化成NSString
NSLog(@"文件内容%@",content);
// 从内容的中间读到尾
[fileHandle1 seekToFileOffset:[data length]/2];
NSData *data4 = [fileHandle1 readDataToEndOfFile];
NSString *content2 = [[NSString alloc] initWithData:data4 encoding:NSUTF8StringEncoding];
NSLog(@"从内容的中间读到尾:%@",content2);
// 读取前2个字符
NSData *data3 = [fileHandle1 readDataOfLength:2];
NSString *content1 = [[NSString alloc] initWithData:data3 encoding:NSUTF8StringEncoding];
NSLog(@"读取前2个字符:%@",content1);
  • 写文件
NSFileHandle *fileHandle2 = [NSFileHandle fileHandleForWritingAtPath:filePath];
  • 读写文件
NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:filePath];// 读写文件
// 从末尾插入内容
[fileHandle seekToEndOfFile];// 跳到文件末尾
NSString *str1 = @"world";
NSData *data1 = [str1 dataUsingEncoding:NSUTF8StringEncoding];// 转化成utf-8
[fileHandle writeData:data1];//写入数据
// 跳到指定的位置插入内容
NSString *str2 = @"world";
NSData *data2 = [str2 dataUsingEncoding:NSUTF8StringEncoding];// 转化成utf-8
[fileHandle seekToFileOffset:30];// 如果没那么长 就插入到末尾
[fileHandle writeData:data2];
  • 获取文件内容长度
NSData *data = [fileHandle1 availableData];// 获取文件中的内容,返回类型是NSData
NSLog(@"文件内容长度%ld",[data length]);
  • 跳到文件末尾
[fileHandle seekToEndOfFile];// 跳到文件末尾
  • 跳到指定位置
[fileHandle seekToFileOffset:30];// 如果没那么长 就插入到末尾
  • 关闭文件
[fileHandle closeFile];
  • 复制文件内容
NSString *fileNames = @"/workspace/ioswork/OCSpace/016_iOS_NSFile/016_iOS_NSFile/dest.txt";
NSString *filePaths = [homePath stringByAppendingString:fileNames];
flag = [fm createFileAtPath:filePaths contents:nil attributes:nil];
if (flag) {
	NSLog(@"创建成功");
}
NSFileHandle *inputFileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];
NSFileHandle *outputFileHandle = [NSFileHandle fileHandleForWritingAtPath:filePaths];
NSData *targetContent1 = [inputFileHandle availableData];// 读取文件内容或者下条语句
NSData *targetContent2 = [inputFileHandle readDataToEndOfFile];
[outputFileHandle writeData:targetContent1];
[inputFileHandle closeFile];
[outputFileHandle closeFile];

猜你喜欢

转载自blog.csdn.net/u010982507/article/details/82941471
13
13)