我正在尝试读取一个驻留在eclipse src文件夹中的文件,但我总是发现找不到文件。
public static void main(String[] args) {
try {
File file = new File("/PMIS/src/config/PMIS_Request_Template.xml");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while(line != null) {
sb.append(line);
sb.append("\n");
}
fr.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}

发布于 2020-09-16 02:00:32
以斜杠开头的路径表示绝对路径,因此在windows下,类似于名为PMIS的驱动器,在Linux下,在挂载的文件系统中有一个具有该名称的基本文件夹。实际上,您希望打开一个相对于工作目录的文件,因此必须从./PMIS/src/config/PMIS_Request_Template.xml (首个点表示当前工作目录)或PMIS/src/config/PMIS_Request_Template.xml (没有前导斜杠)开始。除此之外,您还需要验证当前的工作目录是否为您期望的目录(即eclipse文件夹)。例如,你可以在this way上找到它。相应地调整您的路径,或者更好的是,使路径灵活,并允许它从args移交,以便启动此程序的人可以指定相对或绝对位置。
使用maven时的侧节点:如果您希望静态地保存此文件,则应该将其放入与src文件夹相同级别的resources文件夹中,因为它不包含src源代码。然后使用maven资源加载逻辑-例如,检查this thread。
而且,Maven的标准文件夹结构略有不同。因此,如果您没有手动修改这些设置,那么您应该解决这个问题:将src移动到main/src,将资源文件移动到main/resources,否则您以后会遇到麻烦。
发布于 2020-10-08 00:25:34
/PMIS/src/config/PMIS_Request_Template.xml将此行替换为: //PMIS//src//config//PMIS_Request_Template.xml
发布于 2020-10-08 00:45:09
我首先列出一些问题:
File file = new File("/PMIS/src/config/PMIS_Request_Template.xml");文件可以与类驻留在一起,作为类路径上的资源。则它不是File (磁盘系统文件),但可能在应用程序jar中。现在它可能只适用于集成开发环境,因为文件fr = sources.br.readLine();的XML来说,这是大错特错的
将XML作为应用程序的一部分(资源)。如果应用程序是以jar格式交付的,请使用7zip或类似的命令打开它并检查路径。
try {
URL xmlURL = YourClass.class.getResource("/config/PMIS_Request_Template.xml");
// xmlURL will be null when the path is incorrect.
Path path = Paths.get(xmlURL.toURI());
byte[] xmlBytes = Files.readAllBytes(path);
String xml = new String(xmlBytes, StandardCharsets.UTF_8);
} catch (Exception ex) {
ex.printStackTrace();
} https://stackoverflow.com/questions/63905472
复制相似问题