在目标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
块中存在错误。
感谢任何帮助。
答案 0 :(得分:1)
您没有打开该流。您无法读取/写入NSStream
(NSInputStream
和NSOutputStream
都是NSStream
的子类)而无需先打开它。在阅读之前,只需在流对象上调用open
。