网络编程(五)NSFileHandle和 NSOutputStream

文件句柄 NSFileHandle

  • 特点:
 1>在写数据到磁盘时,边写数据边往后移位置.
 2>直接将NSData 写入磁盘
  • 使用步骤:
 1> 创建空文件
 2> 创建文件句柄指针指向该文件末尾
 3> 当接收到数据时,使用句柄写数据即可
 4> 当数据写完后,需要关闭句柄
 // step1
    NSString *filepath = @"/Users/yang/Desktop/testDoc/abc.png";
    [[NSFileManager defaultManager] createFileAtPath:filepath contents:nil attributes:nil];
    // step2
    NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filepath];
    [fileHandle seekToEndOfFile];
    // step3
    [fileHandle writeData:data];
    // step4
    [fileHandle closeFile];

二 输出流 NSOutputStream

  • 特点:
 1>根据指定的路径创建输出流后不需要创建文件,如果文件不存在,输出流会自动创建一个文件.
 2>输出流创建后需要手动打开输出流才能写数据.
 3>写入磁盘的是byte,需要将NSData 转为bytes
  • 使用步骤:
 1> 创建输出流(指向文件)打开出入流
 2> 当接收到数据时,直接使用输出流写数据即可
 3> 当所有数据写完后关闭输出流
  NSString *filepath = @"/Users/yang/Desktop/testDoc/abc.png";
 // step1
    NSOutputStream *outStream = [NSOutputStream outputStreamToFileAtPath:filepath append:YES];
     // step2
    [outStream open];
     // step3
    [outStream write:data.bytes maxLength:data.length];
     // step4
    [outStream close];

你可能感兴趣的:(网络编程(五)NSFileHandle和 NSOutputStream)