首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Eclipse Src文件夹读取文件

从Eclipse Src文件夹读取文件
EN

Stack Overflow用户
提问于 2020-09-15 23:48:14
回答 3查看 196关注 0票数 1

我正在尝试读取一个驻留在eclipse src文件夹中的文件,但我总是发现找不到文件。

代码语言:javascript
复制
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();
    }   
} 

EN

回答 3

Stack Overflow用户

发布于 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,否则您以后会遇到麻烦。

票数 0
EN

Stack Overflow用户

发布于 2020-10-08 00:25:34

/PMIS/src/config/PMIS_Request_Template.xml将此行替换为: //PMIS//src//config//PMIS_Request_Template.xml

票数 0
EN

Stack Overflow用户

发布于 2020-10-08 00:45:09

我首先列出一些问题:

  • File file = new File("/PMIS/src/config/PMIS_Request_Template.xml");文件可以与类驻留在一起,作为类路径上的资源。则它不是File (磁盘系统文件),但可能在应用程序jar中。现在它可能只适用于集成开发环境,因为文件fr = sources.
  • FileReader是用于新文件( FileReader )的;FileReader是一个旧的实用程序类,它使用缺省的平台编码,因此不同的用户可能会有所不同,对于缺少br.readLine();

的XML来说,这是大错特错的

将XML作为应用程序的一部分(资源)。如果应用程序是以jar格式交付的,请使用7zip或类似的命令打开它并检查路径。

代码语言:javascript
复制
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();
}   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63905472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档