2015-06-06 14 views
0

我目前使用eclipse进行Java开发。 任何人都可以解释为什么使用类FileReader时,文件放在src目录下的原因?有时使用getClass()。getResourceAsStream(“...”)等方法读取图像时,必须将文件放在bin目录下?有没有方法getClass()。getResourceAsStream(“...”)需要src目录下的文件的替代品?在什么情况下要读取的文件应放在bin目录或src目录下?

回答

6

您作为开发商把没有在bin目录,你只有把东西在srcresources目录,当IDE - 或任何其他构建工具 - 建立你的项目,然后生成的类文件和其他资源都投入到bin目录。

资源,位于bin目录 - 在你随后的文物捆绑.jar.war等 - 在你的应用程序的classpath且可由类加载器,这使得能够装入的类,使您能够找到访问资源使用getClass().gerResourceAsStream()

+0

然而,许多教程使用从bin目录中读取文件的方法getClass()。gerResourceAsStream(),那么应该使用哪种方法呢? – Oscar

+0

从bin目录中读取文件_不正确,它用于从'classpath'中读取,'bin'目录不存在于最终的工件中,例如'.jar'文件(将项目导出为jar文件并用你最喜欢的zip文件管理器打开它,你会看到没有bin目录!)。因此,您需要知道位于应用程序'classpath'中的资源之间的差异,您可以使用'gerResourceAsStream()'和资源,这些资源位于'filesystem'上,您可以使用java.io. * ',你在哪里找到一个文件取决于你/你的需求。 – A4L

相关问题