在Java Web Project中放置文件的位置?

时间:2012-03-22 17:19:11

标签: java eclipse

我有一个小的java程序读取文件,在eclipse中我有主项目目录中的文件,类文件在src目录中。这很好。

我想在你正在进行的一个web项目中使用这一小段代码,目前我在src / tools /中有类文件,但我丢失了放置文件的位置?

我已经在一些地方尝试过,但它会抛出未找到的文件。

存储此文件的最佳位置在哪里?以及如何在使用以下代码时确保我有正确的路径?

FileInputStream fstream = new FileInputStream("file.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));

2 个答案:

答案 0 :(得分:2)

您需要将文件作为资源加载(例如,getResourceAsStream(),使用相对于应用程序的路径(getRealPath()),或将其放在绝对位置并使用完整路径。

答案 1 :(得分:1)

如果您将资源文件放在类路径的根目录中(因此,如果您的java文件的源路径是src / main / java,那么将资源文件放在那里),那么您可以这样做。

BufferedReader br = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("myresource.txt")));

现在如果你想要你可以将它放在一个包中,那么该文件将在src / main / java / com / sksamuel中

BufferedReader br = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("com/sksamuel/myresource.txt")));

最后,如果您正在使用maven或类似的东西,那么您将文件放入src / main / resources而不是src / main / java,并且在编译时将两个路径组合在一起,因此您将使用与上面相同的代码。

我的回答是假设该文件将与您的Java代码一起打包,并且会被开发人员改变。如果它是生成的,或者需要在jar / war之外进行更改,那么这不是最佳方式。