0
-(NSString*)dateFilePath{

NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory=[paths objectAtIndex:0];

return [documentsDirectory stringByAppendingPathComponent:kFileName];
}


- (void)viewDidLoad
{

int actuallyRead=0;

NSString *path=[self dateFilePath];

NSURL *audiourl=[[NSURL alloc]initFileURLWithPath:path];

NSLog(@"%@",audiourl);

inStream=[[NSInputStream alloc]initWithURL:audiourl];

actuallyRead=[inStream read:buffer maxLength:sizeof(buffer)];

NSLog(@"%d",actuallyRead);

[dataBuffer1 appendBytes:buffer length:actuallyRead];

NSLog(@"%d",actuallyRead);

[inStream release];

[super viewDidLoad];

}
IN .h file
NSInputStream  *inStream;
NSMutableData  *dateBuffer1;
unint8_t       buffer[1024];

Documents里面有一个文件,我想用这个方法加载到buffer中,但实际上读取总是-1,我的方法有问题吗?

4

2 回答 2

2

您总是得到 -1 的原因是您忘记打开流,所以您所要做的就是[inStream open];在初始化 NSInputStream 之后并尝试从中读取之前插入该行。

于 2012-08-22T12:27:41.130 回答
0

您应该检查 inStream 是否可用

if (nil == inStream)
于 2011-06-22T10:41:42.193 回答