第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

NSFileHandle完成分段讀寫數(shù)據(jù)

標(biāo)簽:
iOS

漫步

需求:
1、将视频或图片分段读取并上传服务器。
2、读取服务器返回的分段数据并保存在本地
首当其冲的想到了NSFileHandle。这里就来唠嗑唠嗑。
这里先分享一个Demo(通过NSFileHandle实现分段上传)
运行demo,

demo运行


按钮:点击读图片。作用是分段读取图片,然后保存数据。
按钮:拼接第一种。作用是将分段的数据按一定的规则拼接完整然后读取图片数据并显示在界面上。想了解这一部分可以查看

二、分段读取文件

因为是分段读取,每一次读取指定大小,如果不是最后一次

//将句柄移动到已读取内容的最后[self.readHandle seekToFileOffset:self.offset];//读取指定大小的内容(PackgeSize)data = [self.readHandle readDataOfLength:PackgeSize];

如果是最后一次

//将句柄移动到已读取内容的最后[self.readHandle seekToFileOffset:self.offset];//从指定位置读到文件最后data = [self.readHandle readDataToEndOfFile];//关闭读句柄[self.readHandle closeFile];

记住一定要closeFile

三、创建写文件句柄并写入文件

//文件存放路径:目标DocumentNSString * docpath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];NSString *destFile =[docpath stringByAppendingPathComponent:fileName];//destFile路径上创建文件[[NSFileManager defaultManager] createFileAtPath:destFile contents:nil attributes:nil];//创建写文件的句柄self.descHandle = [NSFileHandle fileHandleForWritingAtPath:destFile];//开始写入//偏移量设置为目标文件的最后,要不然会覆盖原来的内容[self.descHandle seekToEndOfFile];//写数据[self.descHandle writeData:data];self.offset += data.length;//关闭句柄[self.descHandle closeFile];

同样记住一定要closeFile

四、简单实现文件复制

4.1  创建读和写的句柄
//待复制的文件NSString  *path=  [[NSBundle mainBundle] pathForResource:@"ceshi" ofType:@"jpeg"];//创建读文件的句柄self.readHandle = [NSFileHandle fileHandleForReadingAtPath:path];//读到内存//目标路径NSString * docpath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];NSString *destFile =[docpath stringByAppendingPathComponent:fileName];//创建文件[[NSFileManager defaultManager] createFileAtPath:destFile contents:nil attributes:nil];//创建写文件的句柄self.descHandle = [NSFileHandle fileHandleForWritingAtPath:destFile];
4.2  复制

因为是分段读取,每一次读取指定大小,如果不是最后一次

//将句柄移动到已读取内容的最后[self.readHandle seekToFileOffset:self.offset];//读取指定大小的内容(PackgeSize)data = [self.readHandle readDataOfLength:PackgeSize];//偏移量设置为目标文件的最后,要不然会覆盖原来的内容[self.descHandle seekToEndOfFile];//写数据[self.descHandle writeData: data];

如果是最后一次

//将句柄移动到已读取内容的最后[self.readHandle seekToFileOffset:self.offset];//从指定位置读到文件最后data = [self.readHandle readDataToEndOfFile];//偏移量设置为目标文件的最后,要不然会覆盖原来的内容[self.descHandle seekToEndOfFile];//写数据[self.descHandle writeData: data];//关闭句柄[self.descHandle closeFile];
[self.readHandle closeFile];

如果觉得可以,可以下载Demo详细了解,并实际操作试一下。



作者:采釆一叶秋的iOS漫步
链接:https://www.jianshu.com/p/7a3cf862b63d


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消