gpt4 book ai didi

java - 如何不对文件路径进行硬编码

转载 作者:行者123 更新时间:2023-11-30 03:11:37 30 4
gpt4 key购买 nike

我想使用此实现来计算放入源包中的文件的路径:

URL pathSource = this.getClass().getResource("saveItem.xml");

当我尝试创建一个新文件(如下面的代码)时:

File xmlFile = new File(pathSource.toString());

我尝试用它来创建这样的文档:

Document document = builder.parse(xmlFile);

这给了我java.io.FileNotFoundException。如何在不进行硬编码的情况下计算文件路径?

PS:我已经使用了pathSource.getPath(),但它也不起作用。我想使用类似的实现:

FXMLLoader loader = new FXMLLoader(getClass().getResource("FXMLDocument.fxml"));

PPS:结构如下: image

最佳答案

您无法以 File 实例的形式访问 JAR 文件内的资源。您只能获取一个InputStream

因此,以下行

File xmlFile = new File(pathSource.toString());

将无法正常工作,并且稍后尝试读取它时,将抛出 FileNotFoundException

假设您尝试使用 DocumentBuilder 解析 XML 文件,则可以使用 parse(InputStream)方法:

try (InputStream stream = this.getClass().getResourceAsStream("saveItem.xml")) {
Document document = builder.parse(stream);
}

关于java - 如何不对文件路径进行硬编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33504209/

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