FileService fileService =まず最初に用意するのは、「FileServece」クラスのインスタンスです。これは文字通り、ファイルを扱うためのサービスを利用するためのクラスです。これはFileServiceFactoryクラスにある「getFileService」というクラスメソッドを呼び出して取得できます。
FileServiceFactory.getFileService();
AppEngineFile 変数 = new AppEngineFile( ファイルの指定 );GAEでファイルを扱うためのクラス「AppEngineFile」を用意します。引数には利用するファイルを指定してやるのですが、このファイルの指定の仕方は、ちょっと変わっているので注意が必要です。
"/gs/バケット名/ファイル名"このように、Cloud Storageにあるファイルを扱う際には、「/gs/」の後にバケット名とファイル名をつなげたテキストを指定してやります。これで、指定されたファイルを扱うAppEngineFileインスタンスが用意できます。
FileReadChannel 変数 =《FileServece》.openReadChannel(《AppEngineFile》, 真偽値 );続いて行うのは「FileReadChannel」というクラスのインスタンスを作成する処理です。これは読み書きするための「チャンネル」というものを用意する作業です。openReadChannelで、ロードするAppEngineFileと、ファイルをロックするかどうかを示す真偽値を引数に指定してインスタンスを作成します。――ここまでくれば、あと一息です。
Reader 変数 = Channels.newReader(《FileReadChannel》, 文字コード名 );Channelsクラスにある「newReader」というクラスメソッドを使い、Readerインスタンスを作成します。引数には、先ほどのチャンネル(FileReadChannel)と、文字コードを示すString値を用意します。これで、Cloud Storageのファイルからデータを読み込むためのReaderが用意できました。後は、ごく普通のストリーム操作をするだけです。
BufferedReader 変数 = new BufferedReader(《Reader》);ReaderからBufferedReaderインスタンスを作り、readLineで行単位でテキストを読み込みます。必要なだけreadLineを繰り返していけばいいでしょう。このあたりは、ごく普通のストリーム操作ですね。
String 変数 = 《BufferedReader》.readLine();
《FileReadChannel 》.close();読み込みが完了したら、最後にFileReadChannelをcloseで開放します。BufferedReaderやReaderではなく、FileReadChannelをcloseするようにしてください。けっこう新しいクラスがいくつも登場しましたが、インスタンスの作成手順などは決まりきっていますので、「こういう手順で処理を書けばいいんだ」と割りきって覚えてしまいましょう。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※ファイル読み込みの基本的な処理 String filename = "……ファイルの指定……"; FileService fileService = FileServiceFactory.getFileService(); boolean lock = true; AppEngineFile readableFile = new AppEngineFile(filename); FileReadChannel readChannel = fileService.openReadChannel(readableFile, lock); BufferedReader reader = new BufferedReader(Channels.newReader(readChannel, "UTF8")); String line = null; while((line = reader.readLine()) != null){ out.println(line); } readChannel.close();
<< 前へ | 次へ >> |