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

一、 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 使用完毕之后需要关闭!

posted on 2016-03-06 16:18  cule  阅读(567)  评论(0)    收藏  举报

导航