0

私はJavaが初めてです。javaでプロパティファイルを読みたいです。しかし、同じプロジェクトの別のパスにプロパティ ファイルがあります。

ハードコーディングしたくありません。動的パスで試してみたい。ここに私のコードがあります、

     Properties properties = new Properties();
     try{
        File file = new File("myFile.properties");
        FileInputStream fileInput = new FileInputStream(file);

        properties.load(fileInput);

     }catch(Exception ex)
     {
         System.err.println(ex.getMessage());
     }

私のファイルはフォルダーにありますwebapp/txt/myFile.properties

この問題の解決に役立つ人はいますか?

4

4 に答える 4

1

これを解決する1つの方法は、ファイルへの絶対パスを2つの部分に分割することです。

  1. プロジェクトフォルダまでのパス
  2. プロジェクトフォルダ以降のパス(相対パス)

アプリケーションでこれら2つのプロパティをトレッドし、ファイルの絶対パスを連結して取得できます。相対パスは構成可能なままです。

于 2012-09-17T10:08:52.560 に答える
1
public Properties loadDBProperties() {
    InputStream dbPropInputStream = null;
    dbPropInputStream = DbConnection.class
            .getResourceAsStream("MyFile.properties");
    dbProperties = new Properties();
    try {
        dbProperties.load(dbPropInputStream);
    } catch (IOException ex) {
        ex.printStackTrace();
    }
    return dbProperties;
}

からこのメソッドを呼び出すことができます

dbProperties = loadDBProperties();
String dbName = dbProperties.getProperty("db.schema");//you can read your line form here of properties file
于 2012-09-17T10:11:32.930 に答える
0

その下webapp/txt.myFile.propertiesの webapp がパブリック Web スペースの場合、絶対 URL を使用して読み取る必要があります。

getServletContext().getRealpath("/txt/myFile.properties")
于 2012-09-17T10:05:27.577 に答える
0
  Properties prop=new Properties();
  InputStream input = getServletContext().getResourceAsStream("/txt/myFile.properties");
  prop.load(input);
  System.out.println(prop.getProperty(<PROPERTY>));
于 2012-09-17T10:07:08.410 に答える