// NSFileHandle 文件句柄 (专门操作文件的,不能操作文件夹)
// 文件代言人,如果将NSFileHandle对象和一个文件关联以后
// 从文件句柄中读数据就相当于从文件中读数据
// 往文件句柄中写数据就相当于往文件中写数据
#import <Foundation/Foundation.h>
#define PATH @"/Users/huzhiping/Desktop/objective-c/第二周/Day4/Day0324-homework/homework/TXT/1.txt"
int main(int argc, const char * argv[]) {
@autoreleasepool {
#pragma mark - 文件读操作
// 1.创建文件句柄对象,和文件关联
// 以只读的形式打开文件(只能通过文件句柄,对文件进行读操作)
// 参数1 需要和文件关联的文件的路径
NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:PATH];
// 2.读取文件内容
// a.读到文件末尾
NSData *data1 = [handle readDataToEndOfFile];
// 将二进制转换为字符串
NSString *str = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];
NSLog(@"1===\n%@", str);
// b.读取指定长度的内容
// (如果在执行当前读操作前已经从这个文件句柄中读取过数据,
// 那么这次读取会从上一次读取结束的位置接着读数据)
NSData *data2 = [handle readDataOfLength:200];
// 将二进制转换为字符串
NSString *str2 = [[NSString alloc] initWithData:data2 encoding:NSUTF8StringEncoding];
NSLog(@"2===:\n%@", str2);
// 3.设置读取进度
// 将读写进度设置到指定的位置
// 参数:偏移量(读文件的起始位置)
[handle seekToFileOffset:150];
NSData *data3 = [handle readDataOfLength:400];
// 将二进制转换为字符串
NSString *str3 = [[NSString alloc] initWithData:data3 encoding:NSUTF8StringEncoding];
NSLog(@"3===:\n%@", str3);
#pragma mark - 文件写操作
// b.以只写的形式打开文件(只能通过文件句柄,对文件进行写操作)
// 将指定的数据写入文件句柄中(会覆盖原来的数据)
// 参数:数据的二进制
handle = [NSFileHandle fileHandleForWritingAtPath:PATH];
NSString *str4 = @"hello, wrold";
// 将字符串转换为二进制
NSData *data4 = [str4 dataUsingEncoding:NSUTF8StringEncoding];
[handle writeData:data4];
// 每次文件句柄中写数据的时候,也会接着上一次写操作结束的位置接着往后面写
NSString *str5 = @"was\n";
// 将字符串转换为二进制
NSData *data5 = [str5 dataUsingEncoding:NSUTF8StringEncoding];
[handle writeData:data5];
// 设置读写进度
// 从文件的最后开始写
[handle seekToEndOfFile];
NSString *str6 = @"66666\n";
// 将字符串转换为二进制
NSData *data6 = [str6 dataUsingEncoding:NSUTF8StringEncoding];
[handle writeData:data6];
// 清除文件内容,剩下指定长度的内容,参数传零就是文件清空
[handle truncateFileAtOffset:10];
}
return 0;
}
objective-C NSFileHandle 的方法
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- objective-c中模拟c语言的函数调用方法 在很多第三方objc库中,你会看到一些很优雅的函数调用方法,例如...
- 分配并初始化对象 分配并初始化对象 在Objective-C中创建一个对象需要两步: ● 为新的对象分配空间 ● ...