リソースからInputStreamの取得するための汎用的なサンプル
2009/02/16 17:29Update
URLやファイルなどにアクセスするための汎用的なサンプルです。
JavaのInputStreamは、入力ストリームのもっとも基本的なクラスです。InputStreamを用いて、URLやファイルの絶対パス、classpathにあるファイルなどにアクセス(読み込み)することができます。
本文は、これらのリソースにアクセスための汎用的な方法を提供します。
URLからInputStreamを取得する例:
ファイルパスからInputStreamを取得する例:
classpathにあるファイルからInputStreamを取得する例:
※上の例の場合、My.xmlはcom.syboos.testにあるclassファイルと同じフォルダに配置する必要があります。
◇ シンプルな使い方。同じ方法でURLやファイルなどのリソースからInputStreamを取得することができます。
◇ 便利。ファイルを扱いたい場合、絶対パスではなく、classpathにあるファイルにも簡単に扱える
本文は、これらのリソースにアクセスための汎用的な方法を提供します。
汎用メソッド コード
public static InputStream getInputStream(String resource) {
InputStream stream = this.getClass().getResourceAsStream( resource );
if ( stream == null ) stream = Thread.currentThread().getContextClassLoader().getResourceAsStream( resource );
if ( stream == null ) {
File file = new File(resource);
try {
return new FileInputStream(file);
} catch (Exception ex) {
//
}
try {
URL sourceUrl = new URL(resource);
if (sourceUrl != null) {
stream = sourceUrl.openStream();
}
} catch (Exception e) {
return null;
}
}
return stream;
}
使い方例:
URLからInputStreamを取得する例:
InputStream inputStream = getInputStream("http://www.syboos.jp/");
ファイルパスからInputStreamを取得する例:
InputStream inputStream = getInputStream("c:/test.txt");
classpathにあるファイルからInputStreamを取得する例:
InputStream inputStream = getInputStream("com/syboos/test/My.xml");
※上の例の場合、My.xmlはcom.syboos.testにあるclassファイルと同じフォルダに配置する必要があります。
InputStream inputStream = getInputStream("/WEB-INF/some.xml");
メリット
◇ シンプルな使い方。同じ方法でURLやファイルなどのリソースからInputStreamを取得することができます。
◇ 便利。ファイルを扱いたい場合、絶対パスではなく、classpathにあるファイルにも簡単に扱える
Sponsored Link
Comments
- Relative Articles
- Java言語の基礎 - javacコマンドによるコンパイル - (2008/10/10 17:58)
- Javaでpropertiesファイルの読み書き処理(1) - (2009/01/24 16:36)
- URLから画像を取得してファイルに書き込み 例 - (2009/01/22 16:40)
- リソースファイルの国際化対応 - java.util.ResourceBundle - (2009/01/24 22:41)
- Javaで指定するフォルダにあるすべてのファイルをソートするには - (2009/01/24 23:27)
- FileReader/FileWriterでテキストファイルの読み書き - (2009/01/28 17:57)
- Jakarta Commons NETによるFTP処理(FTPClient) - (2009/01/28 19:40)
- DTDファイル処理 - DTDParser - Java DTD パーサー - (2009/01/30 17:48)
- Apache Commons Digesterを使おう - サンプルから学ぶXML文書の読み込み - (2009/02/09 17:09)
- InputStreamオブジェクトにあるデータをファイルに出力 - (2009/02/16 18:07)