[英]NSInputStream read: maxlength: returning way more bytes than maxlength
[英]NSInputStream read:maxLength: cannot read data, returns -1
在目标C中,我有这样的东西:
uint8_t f[400000];
NSString *Str;
unsigned int count = 0;
NSError* error = nil;
Str = [[NSString alloc]initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Test" ofType:@"txt"] encoding:NSUTF8StringEncoding error:&error];
@try {
NSInputStream *fin = [NSInputStream inputStreamWithData:[Str dataUsingEncoding:NSUTF8StringEncoding]];
count = [fin read:f maxLength:400000];
}
@catch (NSException * e) {
NSLog(@"Exception: %@", e);
}
@finally {
NSLog(@"finally");
}
我将nsstring
转换为nsinputstream
,然后尝试读取内容
但是在调试代码后, count
包含-1,即读取时发生错误。 我不明白我在做什么错! 有人可以帮我吗。
注意 : Test.txt
是纯文本文件,内容仅为“ Hello”,并且调试显示Str
已使用内容初始化。 这意味着在try
块中出了一些问题。
任何帮助表示赞赏。
您没有打开流。 您无法读取/写入NSStream
( NSInputStream
和NSOutputStream
是两个子类NSStream
无需先打开它)。 在从流对象读取之前,只需对其调用open
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.