libro
www.tuyano.com
C#ではじめるWindows 8アプリ開発入門

設定情報とデータの保存 (4/5)

作成:2014-03-01 10:54
更新:2014-03-01 10:54

■FileIOによるファイルの読み書き

では、取得したStorageFolder内にあるファイルを読み書きするにはどうするのでしょうか。これには、2つの手続きで作業をします。まず1つ目は、「ファイルを用意する」という作業です。

フォルダ内には、データを保管するファイルを作成することになります。これはStorageFileというクラスのインスタンスとして用意します。このインスタンスは、以下のようにして取得します。


●新たにファイルを作成してインスタンスを返す
StorageFile 変数 = await 《StorageFolder》.CreateFileAsync( ファイル名 [オプション] );

●既にあるファイルを開いてインスタンスを返す
StorageFile 変数 = await  《StorageFolder》.GetFileAsync( ファイル名 [オプション] );

CreateFileAsyncGetFileAsyncも、引数にファイル名を指定することで、その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インスタンスを渡すことで、そのファイルにテキストを読み書きできます。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「C#ではじめるWindows 8アプリ開発入門」に戻る