繁体   English   中英

NSInputStream read:maxLength:无法读取数据,返回-1

[英]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块中出了一些问题。

任何帮助表示赞赏。

您没有打开流。 您无法读取/写入NSStreamNSInputStreamNSOutputStream是两个子类NSStream无需先打开它)。 在从流对象读取之前,只需对其调用open

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM