黑马程序员技术交流社区

标题: 关于配置文件路径问题 [打印本页]

作者: 杨剑    时间: 2013-3-17 19:40
标题: 关于配置文件路径问题
本帖最后由 杨剑 于 2013-3-18 12:48 编辑

如果要读取配置文件config.properties,可以用
InputStream is = new FileInputStream("config.properties");
或者用类加载器:
InputStream is = ReflectTest1.class.getClassLoader().getResourceAsStream("cn/itcast/day1/config.properties");
InputStream is = ReflectTest1.class.getResourceAsStream(config.properties);
这三种读取配置文件的方式,还是有些晕,不知道路径要怎么看路径才正确,保证文件能读取到?
作者: 崔自成    时间: 2013-3-17 20:00
我觉得要搞清楚,相对路径和绝对路径 就能理解了
绝对路径 :是从盘符开始的一直到你目标文件的全路径,如果你的文件放的比较深,为了防止输入时出错,可以直接复制windows资源管理上的地址栏 + 文件名 比如 :C:\Program Files\Common Files\Tencent\QQDownload\1.txt ;不过需要注意  " \ " 在Java里有转移的意思,所以路径分隔符要都变成" / "
相对路径 : 就是从你的当前路径到目标文件的 路径 例如:你已经在 C:\Program Files\Common Files\Tencent\ 下了 那么  ”QQDownload /1.txt “ 也可以找到 需要的文件。

总之保证文件能读取到,也就是要保证文件的路径正确就行了
作者: 郭利超    时间: 2013-3-17 20:19
1.InputStream is=new FileInputStream("lib/config.properties");可以指定绝对路径
2. InputStream is = this.getClass().getResourceAsStream("/config.properties");可以直接放在src下面读取到的路径就是web-inf下面的classes相对路径
E 资源配置文件在classes下
InputStream in =  this.class.getClassLoader().getResourceAsStream("config.properties");
注意事项:如上以/开头的是指从根目录开始加载。
D 使用类加载器的方式
InputStream in = Main.class.getClassLoader().
getResourceAsStream("test/resource/config.properties");
指定加载资源配置文件的classes相对路径
InputStream in =
Main.class.getResourceAsStream("/test/resource/config.properties");

java代码:
Properties prop = new Properties();
InputStream is = null;
is=new FileInputStream("lib/config.properties");
prop.load(is);
            Class.forName(prop.getProperty("driverifx"));
            Class.forName(prop.getProperty("driveroracle"));
        this.oracleConn = DriverManager.getConnection(prop.getProperty("urloracle"), prop.getProperty("usernameoracle"), prop.getProperty("userpwdoracle"));
        if (this.oracleConn != null) {
            logger.info("CONNECT ORACLE SUCCESS");
        }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2