libro
www.tuyano.com
iアプリ・プログラミング入門

スクラッチパッドを利用しよう (4/6)

作成:2009-12-30 10:15
更新:2009-12-30 10:15

■スクラッチパッドへの保存

では、スクラッチパッドの利用について見ていきましょう。まずは、データの保存からです。これは、saveメソッドで行っています。

データの保存は、OutputStreamを使って行います。DoJaでは、java.ioにあるOutputStreamが利用できるようになっています。ただし、このOutputStreamを用意するのに、ケータイJava特有のやり方をします。

output = Connector.openOutputStream("scratchpad:///0;pos=0");

OutputStreamは、「Connector」というクラスを使って取得します。このopenOutputStreamメソッドを呼び出すと、引数に指定したところに書き出すためのOutputStreamインスタンスが得られます。スクラッチパッドを利用する場合には、

"scratchpad:///ポインタ番号;pos=位置"

このような形で読込先を指定します。「ポインタ番号」というのは、まあいわば「ページ番号」と考えてください。スクラッチパッドでは、この番号を使っていくつものデータを保管できるようになっているのです。またposは、その最初から何byte目から読み込むかという読み込み位置を指定します。

ここでは、"scratchpad:///0;pos=0"としていますね。これにより、ゼロ番目(一番最初のページ)のゼロ位置(一番最初の位置)からデータを読み込むためのOutputStreamが得られる、というわけです。

for (int i = 0; i < data.length; i++)
output.write(data[i]);

続いて、データの書き出しです。これは、OutputStreamにある「write」メソッドで行っています。このwirteは、引数に指定した整数値をbyte値として書き出す働きをします。繰り返しを使い、配列の中身をこれですべて書き出しています。

output.close();

最後に、「close」でリソースを開放して作業終了です。既にJava SEでファイルアクセスなどをやったことがあれば、だいたい同じような流れで作業すればいいことがわかるでしょう。ここでは、writeというメソッドを使いましたが、保存用に用意されているメソッドは他にもあります。以下にざっとあげておきましょう。

[OutoutStream].writeShort( [short値] );
[OutoutStream].writeInt( [int値] );
[OutoutStream].writeLong( [long値] );
[OutoutStream].writeBoolean( [boolean値] );

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

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

●プログラム・リスト●

public void save() {
    OutputStream output = null;
    try {
        output = Connector.openOutputStream("scratchpad:///0;pos=0");
        for (int i = 0; i < data.length; i++)
            output.write(data[i]);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            output.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
※関連コンテンツ

「iアプリ・プログラミング入門」に戻る