美文网首页
NSFileHandle(文件句柄)和 NSOutputStre

NSFileHandle(文件句柄)和 NSOutputStre

作者: coderhlt | 来源:发表于2018-08-06 11:57 被阅读72次

一、NSFileHandle

   //01、下载得到数据
    UIImage *image=[UIImage imageNamed:@"01.png"];
    
    NSData *data=UIImagePNGRepresentation(image);
    
    
    //02、写入到文件中
    //2.1拼接文件的全路径
    NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
    NSString *fullPath = [caches stringByAppendingPathComponent:@"1263.png"];

    //2.2创建一个空的文件
    NSFileManager *manger=[NSFileManager defaultManager];
    [manger createFileAtPath:fullPath contents:nil attributes:nil];
    
    //2.3、创建一个用来向文件中写数据的文件句柄
    NSFileHandle *handle=[NSFileHandle fileHandleForWritingAtPath:fullPath];
  
    //2.4、设置写数据的位置(追加)
    [handle seekToEndOfFile];
    
    //2.5、写数据
    [handle writeData:data];
    
    //2.6、关闭文件句柄
    [handle closeFile];
    handle = nil;

二、NSOutputStream

    //01、下载得到数据
    UIImage *image=[UIImage imageNamed:@"01.png"];
    NSData *data=UIImagePNGRepresentation(image);
    
    //02、写入到文件中
    NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
    NSString *fullPath = [caches stringByAppendingPathComponent:@"123.mp4"];
    //创建一个数据输出流
    /*
     第一个参数:二进制的流数据要写入到哪里
     第二个参数:采用什么样的方式写入流数据,如果YES则表示追加,如果是NO则表示覆盖
     */
    NSOutputStream *stream = [NSOutputStream outputStreamToFileAtPath:fullPath append:YES];
    [stream open];
    
    //使用输出流写数据
    /*
     第一个参数:要写入的二进制数据
     第二个参数:要写入的数据的大小
     */
    [stream write:data.bytes maxLength:data.length];
    
  
    //关闭输出流
    [stream close];
    stream = nil;

相关文章

网友评论

      本文标题:NSFileHandle(文件句柄)和 NSOutputStre

      本文链接:https://www.haomeiwen.com/subject/mmbwvftx.html