Сейчас я работаю над Obj-C с файлами, мое приложение должно читать некоторые огромные текстовые файлы (например, 5 МБ), которые имеют кодировку символов UTF16. Первая проблема заключается в том, как определить размер файла, который я собираюсь читать из ?
Вторая проблема заключается в том, что когда я читаю файл только один раз, он выдает мне правильный текст, но когда я пытаюсь искать или читать в другой раз, он не выдает мне исходный текст, и вот мой сегмент кода:
NSFileHandle *исходный файл;
НСДата *d1;
NSString *st1,*st2 = @;
sourceFile = [NSFileHandle fileHandleForReadingAtPath: filePath]; // размер моего файла 5 МБ
для (целое я = 0; я ‹ 500; я ++) {
d1 = [исходный файл readDataOfLength: 20];
st1 = [[NSString alloc] initWithData: d1 encoding: NSUTF16StringEncoding]; // преобразование моих необработанных данных в строку UTF16
st2 = [st2 stringByAppendingFormat:@%@,st1];
ст1 = @;
}
[исходный файл закрыть файл];
после этого st2 будет содержать некоторую строку, и эта строка будет иметь какой-то четкий символ (как в исходном файле), но тогда она будет содержать беспорядок непонятных символов (например, 䠆⠆䀆䀆䀆ㄆ䌆✆⨆䜆) .. всю ночь не спал пытался разобраться, но не смог :(