我现在正在处理带有文件的 Obj-C,我的应用程序将读取一些具有 UTF16 字符编码的巨大文本文件(例如 5 MB)。第一个问题是如何检测我要处理的文件大小从 ?
第二个问题是当我只阅读一次文件时,它给了我正确的文本,但是当我尝试寻找或阅读另一次时,它不会给我原始文本,这是我的代码段:
NSFileHandle *源文件;
NSData *d1;
NSString *st1,*st2 = @"";
sourceFile = [NSFileHandle fileHandleForReadingAtPath : filePath]; // 我的文件大小是 5 MB
对于 (int i = 0; i < 500; i ++) {
d1 = [源文件读取数据长度:20];
st1 = [[NSString alloc] initWithData:d1 编码:NSUTF16StringEncoding]; // 将我的原始数据转换为 UTF16 字符串
st2 = [st2 stringByAppendingFormat:@"%@",st1];
st1 = @"";
}
[源文件关闭文件];
执行完之后,st2 会携带一些字符串,这个字符串会有一些清晰的字符(如在原始文件中),但随后会携带一堆不清晰的字符(例如䠆⠆䀆䀆䀆ㄆ䌆✆⨆䜆) ..我整晚都没有睡觉试图弄清楚,但不能:(