最好的方法是把它放在你的类路径中然后getResource()
package com.sandbox;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
public class Sandbox {
public static void main(String[] args) throws URISyntaxException, IOException {
new Sandbox().run();
}
private void run() throws URISyntaxException, IOException {
URL resource = Sandbox.class.getResource("/my.txt");
File file = new File(resource.toURI());
String s = FileUtils.readFileToString(file);
System.out.println(s);
}
}
我这样做是因为我假设你需要一个File
. 但是,如果您有一个使用 an 的 api InputStream
,则最好使用它getResourceAsStream
。
注意路径,/my.txt
。这意味着,“获取一个名为 my.txt 的文件,该文件位于类路径的根目录中”。我相信您可以阅读更多有关getResource
并getResourceAsStream
了解有关如何执行此操作的更多信息。但这里的关键是文件的类路径对于您将可执行文件提供给的任何计算机都是相同的(只要您不在类路径中移动文件)。
顺便说一句,如果您在 的行上得到一个空指针异常new File
,这意味着您没有为文件指定正确的类路径。