2016-04-19 7 views
0

(application.properties):入力ストリームを使用してXMLファイルからプロパティを読み取りますか?現在、私の<code>Java</code>アプリケーション内で、私は私が私の<code>properties</code>ファイルから値を取得するために使用<code>Class</code>次いる

public class MyProperties { 
    private static Properties defaultProps = new Properties(); 
    static { 
     try { 

      java.io.InputStream in= MyProperties.class.getClassLoader().getResourceAsStream("application.properties"); 
      defaultProps.load(in); 
      in.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
    public static String getProperty(String key) { 
     return defaultProps.getProperty(key); 
    } 
} 

MyPropertiesクラスを使用してintをインスタンス化する例:

int maxNumberOfPeople = Integer.parseInt(MyProperties.getProperty("maximumPeople")); 

XMLプロパティファイルを読み込むためにこのクラスを変更したいと思います。アプリケーション。プロパティ。

どうすればいいですか?まだMyPropertiesクラスを使用して値をインスタンス化することはできますか?

+0

ここをクリックしてください:http://www.javaworld.com/article/2072602/java-properties-in-xml.html –

+0

は、「あまりにも広すぎる」との質問をしました。これを行うにはさまざまな方法があります(意見に基づく)。何かを試してください、それが動作しない場合は、そのコードとあなたが直面しているエラーを投稿してください。 – Reinard

答えて

2

Properties.loadFromXML(...)の方法については、javadocをお読みください。

メソッドの概要:

ロードこのプロパティテーブルに指定された入力ストリーム上のXMLドキュメントによって表されるすべてのプロパティ。

Properties javadocには、XMLドキュメント(ファイル)のDTDが含まれています。


try-と資源このようなを使用してローダーを書く方が良いでしょう:

try (java.io.InputStream in = MyProperties.class.getClassLoader(). 
      getResourceAsStream("application.properties")) { 
    // load properties 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

また、そのような例外をキャッチし、スカッシュすることは悪い考えです。

  1. Exceptionをキャッチしないでください。
  2. プロパティを読み込めなかった場合は、アプリケーションが「救済」する可能性が最も高いです。

最後に、静的イニシャライザでプロパティをロードしないでください。発生する可能性のある例外を処理するためのクリーンな方法がないためです。

関連する問題

 関連する問題