假设我有一个Java类需要使用绝对路径访问文件
/home/gem/projects/bar/resources/test.csv:
package com.example
class Foo {
String filePath = ????? // path to test.csv
String lines = FileInputStream(new File(filePath).readAllLines();
}
其中 Foo.java 的路径是 /home/gem/projects/bar/src/com/example。
当然我不能指定资源文件的绝对路径。这是因为 jar 文件将作为库分发,供任何客户端在自己的环境中使用。
假设像 test.csv 这样的资源文件始终位于相对于项目根目录的同一路径中。当创建包含 Foo.class 的 jar 时,该 jar 还在同一相对路径(相对于项目根目录)中包含 test.csv。
无论项目栏移动到哪里,指定相对路径都有效的方法是什么?另外,如何创建一个 jar 文件(可以位于任何位置),以便资源文件 test.csv 的路径仍然正确。
为了简单起见,我使用了无效的 Java API( readAllLines() ,它读取所有行并返回包含整个文件内容的字符串。也不使用 try/catch )。
假设 csv 文件可以读取和写入。
我希望现在一切都清楚了。
Put the test.csv
文件到src
文件夹并使用它:
Foo.class.getResourceAsStream("/test.csv")
为了得到一个InputStream
对于该文件。无论项目移动到哪里,这都将起作用,包括打包为 JAR 文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)