getResourceStream无法在eclipse中加载新创建的文件

时间:2013-06-21 10:01:52

标签: java eclipse classpath

我正在使用File IO

动态创建文件

FileOutputStream fos = new FileOutputStream(“sample.txt”);

并尝试在另一个类中使用getClass()。getResourceAsStream(“sample.txt”)加载sample.txt,并且无法加载文件,而如果我在eclipse中刷新项目,则可以加载文件,getResourceStream缓存文件吗?我需要的是动态创建文件并加载它们并对它们执行一些操作,我错过了什么?

代码 InputStream is = getClass()。getClassLoader()。getResourceAsStream(“sample.txt”); //绝对路径

PS:在构建路径中添加了新创建的文件

1 个答案:

答案 0 :(得分:1)

运行应用程序时,在源代码树中创建该文件(通常为/ src)。但你的bin文件夹是类路径上的(通常是/ bin)。因为您在eclipse之外创建了文件(在另一个java进程中),所以只有当您刷新工作区时才1)它在源文件夹中显示为eclipse和2)然后构建器将其复制到bin文件夹。

getResourceAsStream()旨在用于保证在类路径上的东西,例如源树中的静态资源。对于动态生成的文件,您需要查找或传入其他位置,而不是使用getResourceAsStream()。