我有一个小的java程序读取文件,在eclipse中我有主项目目录中的文件,类文件在src目录中。这很好。
我想在你正在进行的一个web项目中使用这一小段代码,目前我在src / tools /中有类文件,但我丢失了放置文件的位置?
我已经在一些地方尝试过,但它会抛出未找到的文件。
存储此文件的最佳位置在哪里?以及如何在使用以下代码时确保我有正确的路径?
FileInputStream fstream = new FileInputStream("file.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
答案 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之外进行更改,那么这不是最佳方式。