このブログは99%ののほほんと1%のお菓子でできています。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
こんちゃ(´・ω・)ノ
今回はプロパティファイルの読み込みです。
プロパティファイルとは以下のようなファイル。
--------------------------------------------
sample.properties
--------------------------------------------
text.file.name=sample.txt
text.file.path=C:\SAMPLE\
http.server.url=http://sample.co.jp
http.server.port=8080
dao.class.name=jp.co.sample.dao.SampleDAO
validation.check=true
--------------------------------------------
このプロパティファイルをjavaで読み込むことで、
処理を決定して様々な動作をさせることができる。
◆サンプル
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
public class Sample{
private static final String PROPERTY_FILE = "sample.properties";
private static final String TEXT_FILE_NAME = "text.file.name";
private static final String TEXT_FILE_PATH = "text.file.path";
private static final String HTTP_SERVER_URL = "http.server.url";
private static final String HTTP_SERVER_PORT = "http.server.port";
private static final String DAO_CLASS_NAME = "dao.class.name";
private static final String VALIDATION_CHECK = "validation.check";
public static void main(String[] args){
Sample sample = new Sample();
try{
Properties properties = sample.loadProperties(PROPERTY_FILE);
System.out.println(properties.getProperty
(TEXT_FILE_PATH+TEXT_FILE_NAME));
System.out.println(properties.getProperty
(HTTP_SERVER_URL+":"+HTTP_SERVER_PORT));
System.out.println(properties.getProperty(DAO_CLASS_NAME));
String validationCheck = properties.getProperty(VALIDATION_CHECK);
if(validationCheck.equals("ture")){
System.out.println("チェックする");
}else{
System.out.println("チェックしない");
}
} catch (Exception e) {
e.printStackTrace();
}
}
private Properties loadProperties(String propertyFile)
throws RuntimeException{
Properties properties = new Properties();
try {
properties.load(new FileInputStream(new File(propertyFile)));
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}
return properties;
}
}
◆メリット
・プログラムはコンパイルしてclassファイルになると、中々修正が面倒だが、
プロパティファイルは外部定義のため、容易に修正が可能になる。
・場合によってはプログラムを起動したままでも、処理を切り替えることができる。
◆デメリット
・設定情報が簡単に参照できる。
・動的に変化させることができるため、処理によっては制御が複雑になる。
◆まとめ
リフレクションと組み合わせることで、
動的にクラスやメソッドを決定することができ、
処理を動的に切り替えることができるのだ。
COMMENT