我想要java中文件的相对路径

时间:2012-09-17 10:04:08

标签: java

我是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 个答案:

答案 0 :(得分:1)

解决此问题的一种方法是将文件的绝对路径分为两部分

  1. 直到项目文件夹的路径
  2. 从项目文件夹开始的路径(相对路径)
  3. 您可以在应用程序中处理这两个属性并连接并获取文件的绝对路径。相对路径仍然是可配置的。

答案 1 :(得分: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

答案 2 :(得分:0)

如果它在webapp/txt.myFile.properties和webapp下面是公共网站空间,那么你需要使用绝对网址来阅读它

getServletContext().getRealpath("/txt/myFile.properties")

答案 3 :(得分:0)

  Properties prop=new Properties();
  InputStream input = getServletContext().getResourceAsStream("/txt/myFile.properties");
  prop.load(input);
  System.out.println(prop.getProperty(<PROPERTY>));