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. 从您的项目文件夹开始的路径(相对路径)

您可以在应用程序中使用这两个属性并连接并获取文件的绝对路径。相对路径仍然是可配置的。

于 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 回答