設定情報とデータの保存 (4/5)
作成:2014-03-01 10:54
更新:2014-03-01 10:54
更新:2014-03-01 10:54
■FileIOによるファイルの読み書き
では、取得したStorageFolder内にあるファイルを読み書きするにはどうするのでしょうか。これには、2つの手続きで作業をします。まず1つ目は、「ファイルを用意する」という作業です。
フォルダ内には、データを保管するファイルを作成することになります。これはStorageFileというクラスのインスタンスとして用意します。このインスタンスは、以下のようにして取得します。
●新たにファイルを作成してインスタンスを返す
●既にあるファイルを開いてインスタンスを返す
CreateFileAsyncもGetFileAsyncも、引数にファイル名を指定することで、そのStorageFolder内のファイルを示すインスタンスが返されます。
また、どちらも「Async」というのが名前についていることからわかるように非同期メソッドです。従って、awaitをつけて作業が完了してから次が実行されるようにするのが一般的でしょう。また、これらを実行するメソッドには、asyncをつけておくのを忘れないようにしてください。
(※非同期メソッドについては、 http://libro.tuyano.com/index3?id=2346003 を参照ください)
StorageFileが用意できたら、2つ目の作業として「データの読み書き」を行います。これは保管するファイルの種類によって違ってきますので、ここでは基本中の基本である「テキストファイル」の読み書きについて説明をしましょう。
テキストファイルの読み書きは、Windows.Storageパッケージにある「FileIO」というクラスを利用して行います。これには以下のようなメソッドが用意されています。
●テキストをファイルに保存する
●テキストをファイルから読み込む
これらも、やはり非同期メソッドですので、awaitをつけて呼び出すのが一般的でしょう。いずれも引数にStorageFileインスタンスを渡すことで、そのファイルにテキストを読み書きできます。
フォルダ内には、データを保管するファイルを作成することになります。これはStorageFileというクラスのインスタンスとして用意します。このインスタンスは、以下のようにして取得します。
●新たにファイルを作成してインスタンスを返す
StorageFile 変数 = await 《StorageFolder》.CreateFileAsync( ファイル名 [オプション] );
●既にあるファイルを開いてインスタンスを返す
StorageFile 変数 = await 《StorageFolder》.GetFileAsync( ファイル名 [オプション] );
CreateFileAsyncもGetFileAsyncも、引数にファイル名を指定することで、そのStorageFolder内のファイルを示すインスタンスが返されます。
また、どちらも「Async」というのが名前についていることからわかるように非同期メソッドです。従って、awaitをつけて作業が完了してから次が実行されるようにするのが一般的でしょう。また、これらを実行するメソッドには、asyncをつけておくのを忘れないようにしてください。
(※非同期メソッドについては、 http://libro.tuyano.com/index3?id=2346003 を参照ください)
■テキストファイルを読み書きする
StorageFileが用意できたら、2つ目の作業として「データの読み書き」を行います。これは保管するファイルの種類によって違ってきますので、ここでは基本中の基本である「テキストファイル」の読み書きについて説明をしましょう。
テキストファイルの読み書きは、Windows.Storageパッケージにある「FileIO」というクラスを利用して行います。これには以下のようなメソッドが用意されています。
●テキストをファイルに保存する
await FileIO.WriteTextAsync(《StorageFile》, テキスト );
●テキストをファイルから読み込む
変数 = await FileIO.ReadTextAsync(《StorageFile》);
これらも、やはり非同期メソッドですので、awaitをつけて呼び出すのが一般的でしょう。いずれも引数にStorageFileインスタンスを渡すことで、そのファイルにテキストを読み書きできます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ