java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java多种获取项目路径下的文件

Java多种获取项目路径下的文件方式

作者:小目标青年

文章介绍了在Java项目中获取resources文件夹下文件的InputStream的多种方法,包括使用类加载器、上下文类加载器、系统属性和Paths类

Java多种获取项目路径下的文件

目标文件放在项目的resources文件夹下 的 mytxt文件里面

文件名叫 file Test.txt

其实可以看到,项目运行后

这个文件被丢到了target文件夹下

拿到这个文件的 InputStream

比如我们在FileUtil里面写个获取文件流的方法

public class FileUtil {
}

① getResourceAsStream

String filePath = "/mytxt/fileTest.txt";
InputStream inputStream = FileUtil.class.getResourceAsStream(filePath);

② getResource + getPath

String filePath = "/mytxt/fileTest.txt";
String path = FileUtil.class.getResource(filePath).getPath();
InputStream fileInputStream = new FileInputStream(path);

③ getClassLoader().getResourceAsStream

注意了:

这种方式文件路径path初始不带 / 杠

String filePath = "mytxt/fileTest.txt";
InputStream inputStream = FileUtil.class.getClassLoader().

getResourceAsStream(filePath);

④ Thread.currentThread().getContextClassLoader().getResource

注意了:

这种方式文件路径path初始不带 / 杠

String filePath = "mytxt/fileTest.txt";
String path = Thread.currentThread().getContextClassLoader().

getResource(filePath ).getPath();
InputStream fileInputStream = new FileInputStream(path);

⑤ System.getProperty

先拿项目根路径,再拼接target/classes 以及 文件路径

String filePath = "/mytxt/fileTest.txt";
String relativelyPath = System.getProperty("user.dir");

InputStream fileInputStream = new FileInputStream(relativelyPath + "/target/classes/" + filePath);

⑥ Paths.get("").toAbsolutePath()

先拿项目根路径,再拼接target/classes 以及 文件路径

String filePath = "/mytxt/fileTest.txt";
Path path = Paths.get("").toAbsolutePath();
InputStream fileInputStream = new FileInputStream(path + "/target/classes/" + filePath);

拿到InputStream ,该干嘛干嘛吧

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文