您的位置:首页 > 其它

保存文件时,解决内存暴涨 方法之-- FileHandle

2016-03-06 16:18 323 查看

一、 FileHandle

NSFileHandle 是专门用来处理文件操作的类,那么他都有什么功能呢!

NSFileManager : 主要是做文件的删除,移动,复制,检查文件是否存在等操作,类似于 Finder。

NSFileHandle : 文件句柄(指针),操纵,提示:凡是看到 Handle 这个单词,就表示对前面一个单词(File)的独立操作。

为了解决刚才内存暴涨的那个问题!我们不能在整个数据下载完毕之后才将数据保存的沙盒中,我们应该下载一点就保存一点!

步骤:

1>我们在接受数据的方法中,来写保存数据的方法。

-   (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {

//调用保存数据的方法

[self saveFile:data];

}

2>写入数据的时候先找到文件的路径

- (void)saveFile:(NSData *)data {

/保存文件的路径

NSString *filePath = @"/Users/Apple/Desktop/111111.hm";

//如果文件不存在,返回的是nil

NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];

if (fileHandle == nil) {

//如果文件不存在,会自动创建

[data writeToFile:filePath atomically:YES];

}else {

//让offset指向文件的末尾

[fileHandle seekToEndOfFile];

[fileHandle writeData:data];

//关闭文件

[fileHandle closeFile];

}

}

注意点:


NSFileHandle 使用完毕之后需要关闭!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: