从jar文件获取资源(在项目根路径中)

时间:2016-01-08 17:45:44

标签: java jar path resources inputstream

我想从我正在运行的jar中读取一个文本文件(input.txt)。

我确实阅读了很多类似的问题,但没有一个可以帮助我解决我的具体问题。

文件夹结构是这样的:

d:\用户\纳撒尼尔\ GIT中\ projectfolder \ SRC \主\的java \ folder1中\文件夹2 \ files.java

我的input.txt文件位于项目文件夹中。

主要方法是files.java。

我确实玩过各种解决方案: 例如:

InputStream is = new FileInputStream("input.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(is));

或者:

Enumeration<URL> en = getClass().getClassLoader()
                .getResources("");
        List<String> profiles = new ArrayList<>();
        System.out.println("vor while");
        if (en.hasMoreElements()) {
            System.out.println("in while");
            URL url = en.nextElement();
            JarURLConnection urlcon = (JarURLConnection) (url.openConnection());
            try (JarFile jar = urlcon.getJarFile();) {
                Enumeration<JarEntry> entries = jar.entries();
                while (entries.hasMoreElements()) {
                    String entry = entries.nextElement().getName();
                    System.out.println(entry);
                }
            }
        }

当我从eclipse和jar文件运行程序时是否有解决方案?

1 个答案:

答案 0 :(得分:0)

您可以将文件放在资源文件夹(src / main / resources)中吗?这样你就可以通过以下方式检索:

BufferedReader reader = 
                new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/input.txt")));
        System.out.println(reader.readLine());
        reader.close();