本地存储,文件内容的拼接

本地存储,文件内容的拼接

需求:项目中要求将大量数据存储到文件中,但是存储的内容不多追加,这就要求记录上一次存储的位置。
思路:用NSFileHandle来处理
知识点:NSFileHandle文件对接器或成文件句柄

  常用的API:

+ (id)fileHandleForReadingAtPath:(NSString *)path; 根据路径读取数据
(id)fileHandleForWritingAtPath:(NSString *)path; 根据路径写数据
- (NSData *)readDataToEndOfFile; 读取数据到最后
- (NSData *)readDataOfLength:(NSUInteger)length; 读取长度
- (void)writeData:(NSData *)data; 写数据
- (unsigned long long)seekToEndOfFile; 将文件指针移至最后,并返回文件长度
- (void)seekToFileOffset:(unsigned long long)offset; 指定文件指针位置
- (void)closeFile; 关闭文件,一般写完/读完数据要关闭文件

我使用的方法
NSString * path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];

        NSString *allPath = [path stringByAppendingPathComponent:@“heartTest.txt"];

       NSData *ff=[NSKeyedArchiver archivedDataWithRootObject:arr];

        NSLog(@“%@",ff);

        NSFileHandle *outfile;

        outfile=[NSFileHandle fileHandleForWritingAtPath:allPath];

        if (outfile==nil) {
            NSLog(@"文件打开失败");
        }else{

            [outfile seekToEndOfFile];

            [outfile writeData:ff];

             [outfile closeFile];

            NSLog(@"写文件成功");

            NSData *add=[NSData dataWithContentsOfFile:allPath];

            NSLog(@"文件读取成功: %@“,add);


       }


} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员的修养

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值