以下代码出现以下错误: 我在 FileInputStream 构造函数中传递带有完整添加的文件名。 前任-: 本地主机: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)
最佳答案
http:\localhost:8080\projectName\OuterFolder\InnerFloder\Example.doc
不是有效的文件路径。在 Windows 上,没有像“C:”那样的“驱动器”字母“http:”。 事实上我怀疑“InnerFloder”是否也存在。
如果您从网络应用程序获取它,请使用以下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();
这是一个新文件。
关于FileInputStream 中具有限定文件名的 java.io.FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18056023/