ファイルからX文字を読み取るにはどうすればよいですか?
バイトではありません。
どのようなクラスが私を助けますか?iPhone:ファイルからX文字を読み取る
難しいのは、エンコードが指定されていることです。
ファイルからX文字を読み取るにはどうすればよいですか?
バイトではありません。
どのようなクラスが私を助けますか?iPhone:ファイルからX文字を読み取る
難しいのは、エンコードが指定されていることです。
解決方法は1バイトを読み取り、それを文字に変換しようとしています。例外が発生した場合は、1バイト以上を読み込み、6バイトまたは成功を読み取るまで変換してください。
成功すると、この文字を文字列に追加し、次のバイトを読み込みます。
可能であれば、ファイル全体をNSMutableString
に読み込み、必要に応じて先頭から文字を抽出します。これがオプションの場合は実装が非常に簡単です。
これはできません:iOSデバイスのRAM容量は小さいです(ファイルが大きい)。また、文字の読み取りとバイトの読み取りが混在する可能性があります。 – DmitryR
小さなバッファに読み込み、そのように文字を追跡します。それでは、記憶はもはや問題ではありません。 –
それはあなたが必要とするものによって異なります。あなたは "ファイルの150,000番目の文字が必要ですか?"最初の100文字は必要ですか?あなたは "最後の1,000,000文字が必要ですか?"それぞれにはおそらく異なるアプローチがあります。また、あなたは、既知のエンコーディングがあると言いました。それは何ですか?それも答えに影響します。 – StilesCrisis
バイトと "char"の違いは何ですか? –
UTF8では、1〜6バイトの任意の文字を使用できます。 – StilesCrisis
おそらく、NSFileHanldeはseekToFileOffsetとreadDataLengthを許可します。問題はそのバイトです。たぶん最悪の場合の文字数のバイト数を読み取ってから、NSString stringWithTF8Stringsがバイトを渡しますか?ここでちょうど推測する – bryanmac