#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; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-10 15:49:01