私は現在、ファイルを使用して Obj-C に取り組んでいます。私のアプリケーションは、UTF16 の文字エンコーディングを持ついくつかの巨大なテキスト ファイル (たとえば 5 MB) を読み取る必要があります。から読む?
2番目の問題は、ファイルを1回だけ読み取ったときに正しいテキストが得られるが、別の時間をシークまたは読み取ろうとすると、元のテキストが得られないことです。これが私のコードセグメントです:
NSFileHandle *sourceFile;
NSData *d1;
NSString *st1,*st2 = @"";
sourceFile = [NSFileHandle fileHandleForReadingAtPath : filePath]; // 私のファイルのサイズは 5 MB です
for (int i = 0; i < 500; i ++) {
d1 = [sourceFile readDataOfLength:20];
st1 = [[NSString alloc] initWithData:d1 encoding:NSUTF16StringEncoding]; // 生データを UTF16 文字列に変換します
st2 = [st2 stringByAppendingFormat:@"%@",st1];
st1 = @"";
}
[sourceFile closeFile];
これが実行された後、st2 はいくつかの文字列を運び、この文字列には (元のファイルのように) 明確な文字が含まれますが、不明な文字の混乱が発生します (例: 䠆⠆䀆䀆䀆ㄆ䌆✆⨆䜆) .. 私はそれを理解しようとして一晩中寝ていませんでしたが、できませんでした:(