NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];
unsigned long long startLocation = xx;
[fileHandle seekToFileOffset:startLocation];
NSInteger length = 100;
NSData *data = [fileHandle readDataOfLength: length];
NSString *labelText = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
[fileHandle closeFile];
现有问题,一个中文占2个字符,而NSFileHandle 是按字节读取的,假设文件内容是“我们当然希望你的问题被回答而不仅仅是提问,所以尽量写清楚你的问题,合理使用标签...”
startLocation为7,这时候无论你设的读取数据长度是多少,都读取不出数据,因为它正好读在“然”这个字上,但并不能完整读取。
如果读取的长度,也正好读到某个字的中间位置,这时候也是读取不出数据的,
像这样的问题,你们都是如何解决的?
...不确定和你说的是不是一个东西...
无非是中文字符的问题,你直接取前14个字符的长度(不管中英文,14个字符总够了),转换成NSString,再直接substringToIndex:7一下,取前三个字,不就出来了吗?