gpt4 book ai didi

java - 如何从资源文件夹加载文件?

转载 作者:行者123 更新时间:2023-12-01 16:59:00 27 4
gpt4 key购买 nike

我的项目具有以下结构:

/src/main/java/
/src/main/resources/
/src/test/java/
/src/test/resources/

我在 /src/test/resources/test.csv 中有一个文件,我想从 /src/test/java/MyTest.java 中的单元测试加载该文件

我有这个代码,但不起作用。它提示“没有这样的文件或目录”。

BufferedReader br = new BufferedReader (new FileReader(test.csv))

我也尝试过这个

InputStream is = (InputStream) MyTest.class.getResourcesAsStream(test.csv))

这也行不通。它返回null。我正在使用 Maven 来构建我的项目。

最佳答案

尝试下一个:

ClassLoader classloader = Thread.currentThread().getContextClassLoader();
InputStream is = classloader.getResourceAsStream("test.csv");
<小时/>

如果以上方法不起作用,各个项目已添加以下类:ClassLoaderUtil 1(代码here)。2

以下是如何使用该类的一些示例:

src\main\java\com\company\test\YourCallingClass.javasrc\main\java\com\opensymphony\xwork2\util\ClassLoaderUtil.javasrc\main\resources\test.csv
// java.net.URL
URL url = ClassLoaderUtil.getResource("test.csv", YourCallingClass.class);
Path path = Paths.get(url.toURI());
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
// java.io.InputStream
InputStream inputStream = ClassLoaderUtil.getResourceAsStream("test.csv", YourCallingClass.class);
InputStreamReader streamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
BufferedReader reader = new BufferedReader(streamReader);
for (String line; (line = reader.readLine()) != null;) {
// Process line
}
<小时/>

注释

  1. See it时光机中。
  2. 也在 GitHub .

关于java - 如何从资源文件夹加载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61542012/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com