#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
/*
NSFileHandle 文件句柄
fileHandleForUpdatingAtPath 读写方式打开文件
fileHandleForReadingAtPath 只读方式
fileHandleForWritingAtPath 只写方式
*/
NSString * filePath = @"/Users/Snail/Desktop/Snail/test.txt";
NSFileHandle * handle = [NSFileHandle fileHandleForUpdatingAtPath:filePath];
//---------------------------读文件-----------------------------
//读指定多少个字节的数据 字符为一个字节 一个汉字为3个字节
//把读出的数据放入文件缓存区NSData中
NSData * data1 = [handle readDataOfLength:10];
//然后将NSData转换为NSString
NSString * string1 = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];
/*
如果此时此刻 再去拿handle去读文件 ,则是在11个字节处开始读
*/
//所以让handle定位到指定位置的方法 定位到结尾
[handle seekToEndOfFile];
//定位到指定位置 0代表开头
[handle seekToFileOffset:0];
//读取所有数据
NSData * data2 = [handle readDataToEndOfFile];
//---------------------------写文件-----------------------------
NSString * string2 = @"My name is Snail";
//将字符串转换成二进制形式
NSData * data = [string2 dataUsingEncoding:NSUTF8StringEncoding];
/*
如果定位到文件的开始 写数据时 会把之前的数据覆盖掉 一般都是在文件的结尾写
[handle seekToFileOffset:0];
[handle writeData:data];
*/
[handle seekToEndOfFile];
[handle writeData:data];
//可以将二进制数据立即写到文件中 提高运行速度
[handle synchronizeFile];
}
return 0;
}
Snail—OC学习之文件操作(读写)
最新推荐文章于 2023-11-17 20:07:37 发布