gpt4 book ai didi

java - 使用ant build读取java中的静态文件

转载 作者:行者123 更新时间:2023-11-30 07:14:27 25 4
gpt4 key购买 nike

我是 ANT 新手,在处理需要通过 Java 代码读取的静态文件时遇到一些问题。我有以下结构:

build
main
example
resository
SomeClass.class
data
data.json
src
example
repository
SomeClass.java
test

在 SomeClass.java 中,我需要读取 data.json 文件,但在解析路径时遇到错误。我认为它与ant有某种关系。

public class SomeClass {
class SomeClass extends ArrayList<Quote> {}

public Quote[] all() {
String path = "../../../data/data.json";
Gson gson = new Gson();
try {
BufferedReader br = new BufferedReader(new FileReader(path));
return gson.fromJson(br, Quote[].class);
} catch (IOException e) {
e.printStackTrace();
}
return new Quote[]{};
}
}

我收到以下错误:

java.io.FileNotFoundException:

我认为由于 ant 它将文件放在 build 文件夹中,因此我可能也需要将我的文件放在那里,我也尝试过,但我认为我需要更多帮助。

最佳答案

相对路径是相对于执行目录计算的。如果您在项目根目录中执行 ant,那么相对路径是 data/data.json,而不是 ../../../data/data.json

当收到“文件未找到”错误时,最好在调试器中验证执行目录,或者通过插入打印语句,例如:

System.out.println(new File(".").getAbsolutePath());

从输出中,您将知道进程在哪个目录中运行,您将能够计算出正确的相对路径。

关于java - 使用ant build读取java中的静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38685229/

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