| コンテンツの読込み・書き込み |
| IO・ネットワーク | ||||
| 作者 三野 凡希 | ||||
| 2008年3月17日(月曜日) 11:00 | ||||
外部リソースについてCurlアプリケーションでは外部リソースから情報を取得したり外部の送信先に情報を送信する必要があるケースがほどんとです。一般的に以下のような場所でデータがあります。
Curlはありとあらゆるファイル(テキスト、バイナリ、イメージ)・Webページなどのリソースに対しデータの読込・書込を行うことができます。
テキストファイルの読込ほとんど多くの場合データはテキスト形式で保持されてます。
テキストファイルを読み取るにはTextInputStreamオブジェクトを作成する必要があります。TextInputStreamオブジェクトはリソースから一連のデータを取り表すストリームクラスの1つです。ちなみにローカルディスク上のファイルの読み取りと、ネットワークまたは他のソース上のデータのストリームからの読み取りは同じです。ただし、ネットワークリソースと対話(Httpのpostメソッドやgetメソッドなどを使用して)する場合はCurlからリクエストデータおよび返却データを受け渡しする必要があるので少し変わってきます。そちらについては「逆引きリファレンス-サーバー連携」を参照してください。 以下にネットワーク上(あるいはローカルファイルシステム)のテキストファイルを読み込むサンプルをご紹介します。
上記のサンプルはread-fromプロシージャを使用したサンプルで、read-fromプロシージャは第一引数のUrlを指定するだけでそのコンテンツを文字列として読込み、StringBufという文字列のオブジェクトを返却します。
上記の例ではpreマクロを使用して読込み結果を表示しています。
テキストファイルの一行づつの読み取りread-fromプロシージャはコンテンツのすべての内容を文字列オブジェクト(StringBuf)に読込みますが、コンテンツがCSVデータのような場合は1行づつ読み込んで処理することが多いと思います。
以下に1行づつ読み込むサンプルを紹介します。
上記のサンプルは少し複雑ですが以下にポイントを説明します。
上記のステップでシーケンシャルファイルを一行ずつ読み込むことができます。
イメージの読込みイメージを簡単に読み込むにはimageテキストプロシージャを使用する方法があります。
以下にImageテキストプロシージャを使用したサンプルをご紹介します。
サポートしているイメージファイル形式は以下の通りです。
TIFF 複数イメージのファイルの最初のイメージのみ。なお、追加のイメージにアクセスするには、ImageDataクラスを使用する必要があります。
書込について書込みの手順も基本的に読込と同じになります。使用するクラスはTextOutputStreamクラスを使用します。
詳しくは「Curl開発者ガイド→外部リソースとの対話→ファイルやその他のリソースへのアクセス→テキストファイルの読み取りと書き込み →テキストファイルへの書き込み」を参照してください。
その他の形式へのアクセスおよび方法上記で紹介したテキストおよびイメージデータ以外にも様々なデータにアクセスすることができます。例えばバイナリデータや圧縮データです。
また同期読み取りだけでなくAjaxなどで注目された非同期読み取りももちろん可能です。 詳しくは「Curl開発者ガイド→外部リソースとの対話→ファイルやその他のリソースへのアクセス」を参照してください。」
サンプルコードのダウンロード
関連ヘルプドキュメント
|
||||
| 最終更新 ( 2008年3月27日(木曜日) 16:54 ) | ||||