美文网首页
[Maven工程]读取src/main/resources目录的

[Maven工程]读取src/main/resources目录的

作者: 隐藏的记号 | 来源:发表于2019-12-06 15:25 被阅读0次

    今天,我要手动去解析resources目录下的app.properties文件。第一步骤当然是获取该文件的对象信息。

    我一开始以为resources目录就是项目根目录,直接提供文件名就足够。结果报出FileNotFoundException

    Properties appProperties =  new  Properties();
    appProperties.load(  new  FileReader( "app.properties" ) );
    

    仔细思考了一下,这样查找的目录是一个相对目录,它相对于当前的工程项目。

    目录是:

    项目目录.png

    确实也是不能找到app.properties文件,报这个异常是应该的. 那么正常要找到文件的情况应该是通过此路径才能定位到:src/main/resources

    文件定位到了,但这种方式其实不可取。咱这开发时候,的确能够顺利找到文件,但是在maven打成jar包后,再执行,这里文件定位还能再定位到吗?就不可以了吧。

    maven编译完成后,所有的源文件,包括resources目录下的文件,默认都会放在target/classes下面,这个路径其实就是classPath的路径。

    所以,在resources 根目录下的配置文件其实就是 classPath的路径。

    在Java中有特定获取classPath的方式,我们可以获取到指定path下的文件路径,甚至是直接的文件输入流对象。

    
    // 获取classpath下资源的URL对象
    java.net.URL appURL = App.class.getClassLoader().getResource("app.properties");
    System.out.println(appURL.getPath());  // 输出该文件的绝对路径
    
    // 获取classpath下资源的InputStream对象
    InputStream propertiesInputStream = App.class.getClassLoader().getResourceAsStream("app.properties");
    
    

    这些方式在平常较少接触到,但后面开发项目时难免会再次用上,仍需记下来方便以后查阅。

    相关文章

      网友评论

          本文标题:[Maven工程]读取src/main/resources目录的

          本文链接:https://www.haomeiwen.com/subject/plregctx.html