尝试使用Resource Java 7

时间:2016-06-21 18:01:47

标签: java java-7

我有一个简单的java程序来测试使用java中的资源,我收到File Not Found错误,程序和文件都在同一个包中,有人可以告诉我什么目录文件资源开始搜索

public class LoadConfigFile {

    public static String getProperty(String propertyName) {
        String propertyValue = null;
        try (InputStream in = new FileInputStream("Properties.properties")) {
            Properties prop = new Properties();
            prop.load(in);

            propertyValue = prop.getProperty(propertyName);

        } catch (IOException e) {

            System.out.println("Error Reading Property File" + e.getMessage().toString());
        }
        return propertyValue;
    }

}

Properties.properties

properties.one=1
properties.two=2
properties.three=3
properties.four=4
properties.five=5

Main.java

public class Main {

    public static void main(String[] args) {

        String s = LoadConfigFile.getProperty("property.one");

        System.out.println(s);

    }

}

3 个答案:

答案 0 :(得分:3)

Working directory用于进程,要使用Java获取它,您可以使用

System.out.println(System.getProperty("user.dir"));

答案 1 :(得分:3)

如果您在Java包中有文件,则不应将其作为文件访问,而应作为资源:

InputStream in = this.getClass().getResourceAsStream("Properties.properties");

答案 2 :(得分:0)

如果您查看FileInputStream构造函数的源代码,您会看到它反过来调用File的构造函数。

如果您查看File的文档,您将找到有关如何解释路径字符串的详细说明。

请注意以下代码段:

  

路径名,无论是抽象的还是字符串形式,都可以是绝对的   或亲戚。绝对路径名是完整的,没有其他   需要信息才能找到它表示的文件。一个   相反,相对路径名必须用来解释   从其他路径名获取的信息。 默认情况下的课程   java.io包始终解析相对路径名   当前用户目录。该目录由系统属性命名   user.dir,通常是Java虚拟目录   机器被调用。