NSInputStream

1.NSInputStream文件的讀取流,是將本地的文件讀取到內(nèi)存中去

@property(nonatomic)NSInputStream*inputStream;

// ①文件讀取流的開啟 ?path為需要被讀取的文件路徑 ?

self.inputStream= [[NSInputStreamalloc]initWithFileAtPath:path];

[self.inputStreamsetDelegate:self];

[self.inputStreamscheduleInRunLoop:[NSRunLoopcurrentRunLoop]forMode:NSDefaultRunLoopMode];

[self.inputStreamopen];

// ②在開啟了文件流以后就會在代理方法中執(zhí)行讀取操作

#define HBUFC_BUFFER_SIZE1024 ?//一次最大讀取的字節(jié)

uint8_thbufc_file_buffer[HBUFC_BUFFER_SIZE]; // 一個緩存的數(shù)組

-(void)stream:(NSStream*)stream handleEvent:(NSStreamEvent)eventCode{

switch(eventCode) {

// 有有效讀取字節(jié)的時候進(jìn)入這個case,一次性將所有的流進(jìn)入

caseNSStreamEventHasBytesAvailable:{

// 將HBUFC_BUFFER_SIZE 大小的字節(jié)流放入到緩存數(shù)組hbufc_file_buffer中

longbytes = [(NSInputStream*)streamread:hbufc_file_buffermaxLength:HBUFC_BUFFER_SIZE];

// 進(jìn)行循環(huán)的讀取,注意每次data取的是讀取到的字節(jié)數(shù) 而不是最大字節(jié)數(shù)即bytes

while(bytes >0) {

NSData*data = [NSDatadataWithBytes:hbufc_file_bufferlength:bytes];

[self.dataappendData:data];

bytes = [(NSInputStream*)streamread:hbufc_file_buffermaxLength:HBUFC_BUFFER_SIZE];

}

}

break;

// 流讀取完畢后,進(jìn)入這個case 將流關(guān)閉,并且從runloop中移除

caseNSStreamEventEndEncountered:{

NSString*dataStr = [[NSStringalloc]initWithData:self.dataencoding:(NSUTF8StringEncoding)];

NSLog(@"%@===",dataStr);

[streamclose];

[streamremoveFromRunLoop:[NSRunLoopcurrentRunLoop]forMode:NSDefaultRunLoopMode];

stream =nil;

}

break;

default:

break;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,724評論 19 139
  • 對于 NSInputStream 和 NSOutputStream 一直沒怎么搞清楚,今天抽一些時間在此記錄一下!...
    SANTOS_WU閱讀 6,058評論 1 2
  • 教程一:視頻截圖(Tutorial 01: Making Screencaps) 首先我們需要了解視頻文件的一些基...
    90后的思維閱讀 4,998評論 0 3
  • 對于 NSInputStream 和 NSOutputStream 一直沒怎么搞清楚,今天抽一些時間在此記錄一下!...
    真巧了_嘿閱讀 2,064評論 1 0
  • 敬愛的于漪老師: 您好!提筆給您寫信有點唐突和冒昧,我不知道您能否看到這封信,但讀完您的《教育的姿態(tài)》后...
    暖陽西子閱讀 2,954評論 0 0

友情鏈接更多精彩內(nèi)容