FileService fileService =こちらも最初に行うのは、FileServiceインスタンスの用意です。やはり、FileServiceFactory.getFileServiceを呼び出してインスタンスを取得します。
FileServiceFactory.getFileService();
GSFileOptionsBuilder 変数 = new GSFileOptionsBuilder();続いて、ファイルのオプション情報を管理するための「GSFileOptionsBuilder」というクラスのインスタンスを作成します。これは、この後で作成するAppEngineFileのファイルの各種設定や属性情報を管理するクラス「GSFileOptions」を生成するためのものです。このインスタンスを用意し、メソッド類を呼び出して設定をしていきます。
変数 = 《GSFileOptionsBuilder》.setBucket( バケット名 );GSFileOptionsBuilderインスタンスには、設定を行う各種のメソッドが用意されています。中でも、この4つは必須のメソッドと考えてよいでしょう。ファイルが置かれるバケット名、ファイル名、Mimeタイプの指定、アクセス権の設定などを行います。
変数 = 《GSFileOptionsBuilder》.setKey( ファイル名 );
変数 = 《GSFileOptionsBuilder》.setMimeType( Mimeタイプの指定 );
変数 = 《GSFileOptionsBuilder》.setAcl( アクセス権の値 );
GSFileOptions 変数 = 《GSFileOptionsBuilder》.build();作成したGSFileOptionsBuilderの「build」を呼び出し、GSFileOptionsインスタンスを作成します。これがファイルの設定情報を管理するインスタンスになります。
AppEngineFile file = fileServiceAppEngineFileを作成します。今回は、ファイルを保存するので、new AppEngineFileではなく、FileServiceの「createNewGSFile」というメソッドを利用します。これで引数にGSFileOptionsインスタンスを指定することで、その設定内容で新しいファイルのAppEngineFileインスタンスを作ります。
.createNewGSFile(《GSFileOptions》);
FileWriteChannel 変数 = 《FileService》.openWriteChannel(《AppEngineFile》,真偽値 );ファイルを書きだすためのチャンネル「FileWriteChannel」クラスのインスタンスを作成します。これはFileServiceの「openWriteChannel」というメソッドを呼び出します。引数には、先ほど作成したAppEngineFileと、ロックするかどうかを示す真偽値を指定します。
Writer 変数 = Channels.newWriter(《FileWriteChannel》, 文字コード名 );ファイルに出力をするためのWriterインスタンスを取得します。ChannelsのnewWriterメソッドを使い、引数にFileWriteChannelインスタンスを文字コードを示すString値を指定します。――これでファイル出力のためのWriterが得られましたから、後は一般的なストリームの作業になりますね。
PrintWriter 変数 = new PrintWriter(Channels.newWriter(writeChannel, "UTF8"));Writerが得られれば、後は普通のストリーム操作ですね。PrintWriterを作成し、printlnで保存するテキストを書きだしていきます。
《PrintWriter》.println( 出力するテキスト );
《PrintWriter》.close();最後に、PrintWriterとFileWriteChannelを開放すれば、作業終了です。FileWriteChannelの開放はcloseではなく、「closeFinally」というメソッドを呼び出します。ロード時とはちょっと違うので注意してください。
《FileWriteChannel》.closeFinally();
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※ファイル保存の基本的な処理 // public static final String BUCKETNAME = "…バケット名…"; // public static final String FILENAME = "…ファイル名…"; FileService fileService = FileServiceFactory.getFileService(); GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder() .setBucket(BUCKETNAME) .setKey(FILENAME) .setMimeType("text/html") .setAcl("public_read"); AppEngineFile file = fileService .createNewGSFile(optionsBuilder.build()); boolean lock = true; FileWriteChannel writeChannel = fileService.openWriteChannel(file, lock); PrintWriter ch_out = new PrintWriter(Channels.newWriter(writeChannel, "UTF8")); ch_out.println(title); ch_out.println(); ch_out.println(content); ch_out.close(); writeChannel.closeFinally();
<< 前へ | 次へ >> |