Maven的web项目里面如何在java类里面直接获取src/main/resources下面的文件对象?

开源中国首席蛤蟆精 发布于 2015/05/27 15:05
阅读 52K+
收藏 0

例如src/main/resources目录下面有个config/interfaces/quick-stock.xml文件
我想直接在某一个Java类里面获取到这个文件的File对象,怎么整?(注意噢:是获取File对象。。。)

加载中
1
loyal
loyal

xxx.class.getResource("/configs/interface/....");

xxx.class.getResourceAsStream("/xxx/xx/x/x/x/x/x")

开源中国首席蛤蟆精
开源中国首席蛤蟆精
难道通过 new File(xxx.class.getResource("/aa/bb/cc.xml")); 获取吗?
开源中国首席蛤蟆精
开源中国首席蛤蟆精
我想获取的是File对象
1
范老司
范老司

String filePath = XXX.class.getClassLoader().getResource("/configs/interface/..").getPath();

File file = new File(filePath);

0
时光荏苒2017
时光荏苒2017

1

String filePath = XXX.class.getClassLoader().getResource("/configs/interface/..").getPath();

File file = new File(filePath);

 

类似下面的错

 

java.nio.file.InvalidPathException: Illegal char <:> at index 2: /D:/56qq/codes/usercenter/usercenter-server/target/test-classes/data/test.jpg

    at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
    at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
 

 

0
时光荏苒2017
时光荏苒2017
File f = new File(this.getClass().getResource("/data/test.jpg").getPath());
log.info(f.getAbsolutePath()); // windows和macbook都是正常的
URL resource = getClass().getClassLoader().getResource("data/test.jpg");
log.info(resource.getPath()); // windows下会出现"/"开头
Path path = Paths.get(f.getAbsolutePath());
byte[] data = Files.readAllBytes(path);

 

这种方式是可以的。

使用File来包一次。

 

返回顶部
顶部