访问不同包中的文件

时间:2014-04-27 16:35:22

标签: java

我觉得这是一个非常愚蠢的问题,但我现在已经找了20分钟,我不能为我的生活弄明白,因为很多在线解决方案似乎不再受支持了。

如何获取不同包中文件的File对象? 我需要它作为File对象,因为这需要传递给另一个方法。

我想测试一个获取File类型参数的方法。我想用来测试它的文件位于不同的包中:puu.sh/8pJAg/b177243091.png(testdata)。我似乎无法访问它,当我new File("testdata/A000100")

时,我不断收到filenotfoundexception

1 个答案:

答案 0 :(得分:0)

包不包含文件,它们包含类和资源。这是因为文件系统上的包不一定作为目录存在(它可以是.jar文件的一部分,或者它可以通过任何一种协议从网络位置下载,或者它可以在运行中生成通过自定义类加载器 - Java实际上并不关心)。您的选择似乎是:

  1. 更改方法以接受流,并使用Class.getResourceAsStream()
  2. 将流复制到临时文件,调用方法,然后在临时文件完成后删除它,或者
  3. 停止将数据存储在一个包中,并在可以保证它存在的地方为它创建一个目录。