FC2ブログ
ヽ|∵|ゝ(Fantom) の 開発blog? ホーム » Applet »【Applet】【Java】URL経由でWebサーバ上のテキストファイルを読み込む

【Applet】【Java】URL経由でWebサーバ上のテキストファイルを読み込む  


Android でも使えるhttpダウンロード方式は→こちら

前回の続き。というか使い回しもテーマの内なので、2つの関数

readStream() - ストリームから読み込み、バイト配列で返す
loadText() - ストリームから読み込み、テキストエンコードして返す


は、そのまま使う。

今回は URL 経由で同 Web サーバ上のテキストファイルを読み込む方法。もちろんブラウザのアクセスと同じ仕様になるわけで、ファイルの読み取りパーミッションやディレクトリの閲覧権限なども関係するが、とりあえずそれらはOKの状態を前提としてコードを書いてみる。ストリームから読み込むルーチンは前回完成してるので、それを使えばもの凄く簡単だ。実行は Applet で Web ページから 、.class や .jar から起動してることを想定している。

//設定値
private static final String DEFAULT_ENCORDING = "UTF-8"; //デフォルトのエンコード

//URL経由でWebサーバ上のテキストファイルを読み込む
public static final String loadTextURL(URL url) throws IOException {
InputStream is = url.openStream(); //url.openConnection().getInputStream() と同じ
return loadText(is, DEFAULT_ENCORDING);
}

//メインでは... (※例外処理は省略)
String fileName = "res/data/sample.txt"; //html からの相対パス
String text = loadTextURL(new URL(getCodeBase(), fileName)); //同サーバ上の場合

//System.out.println(text);
//↑では確認しずらいので、↓のメソッドなどで確認
public void paint(Graphics g) {
g.drawString(text, 5, 25);
}

同 Web サーバ上の自アプリ用のテキストファイルを読み込んでることを想定しているので、getCodeBase() を使っているが、別サーバで "http://~" の指定でも構わない。ただしその場合は、アクセス権限や、サーバによってはクロスドメインの設定など必要になるかもしれない。

(参考) クロスドメインのセキュリティ・モデル
(参考) クロスドメインポリシーファイル
(参考) カスタムポリシーファイル

また同サーバ上でないなら、本来はこの readStream() のように一気に読み込み、全ての文字エンコーディングしていくタイプより、通信しながら随時文字エンコーディングしていくコードの方が良いだろう。その場合は InputStreamReaderBufferedReader を使った方が良い。~Reader クラスというのは言わば、通常の ~Stream 関連クラスに順次文字エンコーディングしていく機能を付け加えたものと考えれば簡単だ。また別サーバとの通信は、片方のサーバダウンやアクセス障害なども考慮に入れて、通常は別スレッドにして、メインでは進捗を表示する事が多いね。そうでないと、いつの間にかどちらかのサーバがダウンなどして、いつまでも待ち状態になり兼ねない。タイムアウト機能も必要だろう。小さなファイルならそれほど問題もないが、大きなファイルには向かない。同サーバ上なら、起動ファイルも一緒に落ちるので、見た目でわかりやすい分、そこまで神経質になる必要もないが(笑)。

これでサーバ上に小さな設定ファイルなどを置いて、読み込んで行く事もできる。

次回は jar 内のリソースからテキストファイルを読み込んでみよう


(関連記事)
【Java】【PHP】【JSON】JSON を PHP から送信して、Java で受信する
【Applet】jar 内リソースからテキストファイルを読み込む
【Android】res/raw リソースフォルダからテキストファイルを読み込む
【Android】assets フォルダからテキストファイルを読み込む
【Android】内部ストレージからテキストファイルを読み込む
【Android】内部ストレージにテキストファイルを保存する
【Android】SDカードからテキストファイルを読み込む
【Android】SDカードにテキストファイルを保存する
【汎用】ストリームからテキストファイルを読み込む(ストリームから読み込み、テキストエンコードして返す)
【汎用】ローカルシステム(Windows 等)から、テキストファイルを読み込む
【Android】【Applet】【Java】テキストファイルの読み込み・保存 まとめ
【Android】Preference 機能を使ってデータを読み込み・保存する


スポンサーサイト

category: Applet

thread: プログラミング

janre: コンピュータ

tag: テキストファイル読み込み 
tb: 0   cm: --



トラックバック

トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/117-16ffb9b4
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

Social

検索フォーム

全記事一覧

カテゴリ

ユーザータグ

最新記事

リンク

PR

▲ Pagetop