我很困惑如何访问我的目录中的excel文件。我正在使用Netbean 6.9 + GlassFish v3 bundle
。
project
|
|----web
|----src
|---local.test.jaxrs
|
|-----ExcellaTestResource
|-----myTemplate.xls
如上所述我认为如果excel文件与资源类(即ExcellaTestResource)在同一目录中,我可以成功获取excel文件。
URL templateFileUrl = ExcellaTestResource.class.getResource("myTemplate.xls");
但当然,将java类和excel文件混合在同一目录中并不好。
所以我将excel文件移到了project/web/myTemplate.xls
project
|
|----web
| |-----------myTemplate.xls //new location
|
|----src
|---local.test.jaxrs
|
|-----ExcellaTestResource
|
现在我无法使用getResource()
方法,因为myTemplate.xls
与Java类ExcellaTestResource不在同一目录中:(
我可能会提供m yTemplate.xls
的完整网址路径,但是......不是正确的。
URL location = new URL("C://User/mmm/foo/bar/project/web/myTemplate.xls")
那么,如何在新位置(... web / myTemplate.xls)访问myTemplate.xls?
更新
我尝试使用File类,但我的测试显示它没有查看我的意图目录..
File myFile = new File("web/myTemplate.xls");
System.out.println(myFile.getAbsolutePath());
C:\用户\ M-takayashiki.netbeans \ 6.9 \配置\ GF3 \ domain1的\网络\ myTemplate.xls
答案 0 :(得分:1)
如果将它放在WEB-INF / classes中,可以使用servlet上下文中的getResourceAsStream()来获取InputStream。
如果必须将String从该InputStream传递到另一个类,则读取其中的内容,创建一个String,然后传递它。我认为您的问题意味着您必须能够从您的Web应用程序上下文中读取Excel文件的内容。
这是否是一个网络应用程序?
file URL如下所示:“file:/// c:/User/mmm/foo/bar/project/web/myTemplate.xls”
但是如果你想在Web应用程序中执行此操作,请将Excel文件放在WEB-INF / classes中,并使用servlet上下文来获取getResourceAsStream()并使用InputStream读取内容。然后将这些字节转换为字符串。
答案 1 :(得分:1)
一种可能性project/web
不在您的CLASSPATH
中。