0

使用以下代码获取以下错误:我正在通过 FileInputStream 构造函数中的完整添加传递文件名。例如:localhost:8080/projectName/OuterFolder/InnerFloder/example.doc

logger.info("File Path: "+ path+"/OuterFolder/InnerFloder/"+fileName);

POIFSFileSystem  fs = new POIFSFileSystem(new 
                 FileInputStream(path+"/OuterFolder/InnerFloder/"+fileName));
http:\localhost:8080\projectName\OuterFolder\InnerFloder\Example.doc (The filename, directory name, or volume label syntax is incorrect)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at com.avi.service.UserService.createPolicy(UserService.java:1339)
    at com.avi.service.UserService$$FastClassByCGLIB$$de8fbe27.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:617)
    at com.avi.service.UserService$$EnhancerByCGLIB$$7c22f094_2.createPolicy(<generated>)
    at com.avi.controller.TestController.openPolicy(TestController.java:2733)
4

2 回答 2

3
http:\localhost:8080\projectName\OuterFolder\InnerFloder\Example.doc

不是有效的文件路径。在 Windows 上,没有像“C:”这样的“驱动器”字母“http:”。事实上,我怀疑是否存在“InnerFloder”。

如果您从 Web 应用程序中获取它,请使用以下命令in

URL url = new URL(path + "/OuterFolder/InnerFloder/Example.doc");
InputStream in = url.openStream();

要将文件写入某处(您不能将其写回网络应用程序http://...),请选择一个文件:

File file = new File("C:/OuterFolder/InnerFloder/" + fileName);
file.getParentFile().mkdirs(); // Create any missing directories
OutputStream out = new BufferedOutputStream(new FileOutputStream(file));
fs.writeFileSystem(out);
out.close();

这是一个新文件。

于 2013-08-05T10:51:45.207 回答
1

FileInputStream需要文件系统中的实际文件路径而不是 URL。

于 2013-08-05T10:36:29.703 回答