访问云环境中的本地文件

时间:2017-02-16 12:01:27

标签: java file azure

我试图访问GeoLiteCity文件,它在我的本地计算机上运行但无法在云上获取路径(Azure)。 文件保存完全符合以下层次结构:

/src/main/resources/database/GeoLiteCity.dat

我的代码:

void getFile() {
    if (this.file == null) {
        try {
            URL url =  this.getClass().getClassLoader().getResource("database/GeoLiteCity.dat");
            this.file = new File(url.toURI());
            System.out.println(file.getPath().toString());

        } catch (Exception ex) {
            System.out.println(file.getPath().toString(),ex);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

假设代码是在Tomcat上运行的Java WebApp的一部分。根据我的经验,如果您想通过方法this.getClass().getClassLoader().getResource("<the data file path relative to the root classes path>")获取资源,请确保路径GeoLiteCity.dat下的数据文件webapps/<your-webapp-name>/WEB-INF/classes/database/

如果您的webapp部署在Azure WebApp上,我认为您可以尝试在Azure WebApp上使用数据文件的绝对路径,例如D:/home/site/wwwroot/webapps/<your-webapp-name>/<the data file path>,并且只能使用new File("<the absolute path of data file>")