テキストファイルから整数のリストを読みたいのですが、次のようなコードを書きたいだけです
中間温度; フィン>>温度;
ファイル アクセスには多くの選択肢があります。C++ スタイルのアクセスを使用したい場合は可能ですが、当然、適切な C++ ファイルまたはストリーム メソッドを使用してファイルを開く必要があります。ただし、Objective-C++ を使用する場合は、C++ コードを Objective-C に簡単に混在させることができます。
fopen()、fread() などの C 標準ライブラリ ファイル ルーチンを使用することもできます。
C または C++ を使用してファイルを読み取ることは、ファイルが自分のプログラム以外のソースから来ている場合 (自分では制御できないもの) に適していることがよくあります。
しかし、Cocoa のドキュメントを読んだとき、NSFileHandle が提案されていることがわかりました。想定したような方法はなく、関連する方法は 1 つだけです。
繰り返しますが、多くの選択肢があります。はい、NSFileHandle を使用して、ファイルから NSData オブジェクトにバイトを読み取ってから、データ オブジェクトからバイトの範囲を取得できます。ただし、データを読み書きするためのより一般的な方法は、NSKeyedArchiver と NSKeyedUnarchiver を使用することです。
NSData *data = [NSData dataWithContentsOfFile:pathToFile];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
int age = [unarchiver decodeIntForKey:@"Age"];
int weight = [unarchiver decodeIntForKey:@"Weight"];
NSString *name = [unarchiver decodeObjectForKey:@"Name"];
ただし、これは氷山の一角にすぎません。探していたものに比べてコードが多いように見えますが、作業が大幅に少なくなる場合もあります。オブジェクトとその関係は格納および読み取りが可能なため、オブジェクトの複雑なグラフをわずかなコードで読み取ることができます。
OrgChart *chart = [NSUnarchiver unarchiveObjectWithFile:pathToFile];
もう 1 つのオプションは、プロパティ リストを使用することです。これは非常に使いやすいですが、使用できるデータ型が制限されています。
これらのトピックについて詳しく知りたい場合は、Archives and Serializations Programming Guide、Property List Programming Guide、およびFile System Programming Guideをお読みください。