通过以下代码获取以下错误: 我在FileInputStream构造函数中传递了完全添加的文件名。 EX-: 本地主机: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)
答案 0 :(得分:3)
http:\localhost:8080\projectName\OuterFolder\InnerFloder\Example.doc
不是有效的文件路径。在Windows上没有“驱动”字母“http:”,如“C:”。 事实上我怀疑,“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();
这是一个新文件。
答案 1 :(得分:1)
FileInputStream
需要文件系统中的实际文件路径而不是URL。