文件句柄 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];