3

我想在 Java Web 应用程序中添加一个文本文件作为资源。我使用 Netbeans 作为 IDE。
我想将一个文件保存在一个文件夹中,以便我可以直接引用该文件而不是绝对路径。

FileInputStream fstream = new FileInputStream("resource.txt");

将该文件保存在文件夹中的什么位置?

4

1 回答 1

2

依赖相对文件路径是个坏主意,因为它们依赖于当前工作目录(Java 应用程序启动时当前打开的目录),并且您无法从 Java 应用程序内部控制当前工作目录。

您应该将它放在类路径中并从类路径中获取它:

InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("resource.txt");
// ...

上面的例子假设文件被放置在类路径根目录中。如果它在例如 packagecom.example.resources中,那么您应该按如下方式获取它:

InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("com/example/resources/resource.txt");
// ...

如果该文件应该是可编辑的,那么您应该真正使用绝对磁盘文件系统路径,并在您的 Web 应用程序的安装指南中正确记录它。另一种方法是使用数据库。

也可以看看:

于 2011-12-05T17:20:47.910 回答