找不到存在的文件

时间:2015-03-14 05:01:39

标签: java filenotfoundexception

我的机器有RAD 8.5和WAS 8.5。当我运行我的代码时,我能够读取和写入Excel文件,但是当我在QA区域(也有RAD 8.5)中部署我的代码时,我得到No such file or directory例外。

最初,我尝试过这样的事情,这在QA中没有用。当用户选择Excel文件时,filePath的值将来自UI。

fInSt = new FileInputStream(new File(filePath));

所以我尝试了这段代码,但它仍然没有用。

File file = new File(filePath);
System.out.println("file.isFile())  :"+file.isFile());
System.out.println("file.isDirectory() :"+file.isDirectory());
System.out.println("file.isAbsolute() :"+file.isAbsolute());
System.out.println("file.isHidden() :"+file.isHidden());
System.out.println("file.canRead() :"+file.canRead());
System.out.println("file.canWrite() :"+file.canWrite());
System.out.println("file.canExecute() :"+file.canExecute());

fInSt = new FileInputStream(file);// below output is for file.getAbsoluteFile() but it didn't work with this either

我收到以下错误:

dcnFile :C:\Users\namanoha\Desktop\Restart-2007.xls
[3/14/15 0:27:18:393 EDT] 0000201b SystemOut     O file.isFile())  :false
[3/14/15 0:27:18:393 EDT] 0000201b SystemOut     O file.isDirectory() :false
[3/14/15 0:27:18:393 EDT] 0000201b SystemOut     O file.isAbsolute() :false
[3/14/15 0:27:18:393 EDT] 0000201b SystemOut     O file.isHidden() :false
[3/14/15 0:27:18:393 EDT] 0000201b SystemOut     O file.canRead() :false
[3/14/15 0:27:18:393 EDT] 0000201b SystemOut     O file.canWrite() :false
[3/14/15 0:27:18:393 EDT] 0000201b SystemOut     O file.canExecute() :false
[3/14/15 0:27:18:393 EDT] 0000201b SystemOut     O file.getAbsoluteFile() :/export/local/opt/soft/bpm85dev/WebSphere/gctbp8mbdc1_dev_node/C:/Users/namanoha/Desktop/Restart-2007.xls
[3/14/15 0:27:18:396 EDT] 0000201b SystemOut     O 2015-03-14 00:27:18,396 [WebContainer : 7] ERROR  - WebContainer : 7 com.aig.resolution.gettask.BulkRestartDCN.excelReader():Encountered Exception in excelReader/export/local/opt/soft/bpm85dev/WebSphere/gctbp8mbdc1_dev_node/C:/Users/namanoha/Desktop/Restart-2007.xls (No such file or directory)

2 个答案:

答案 0 :(得分:1)

听起来好像你在QA系统上没有该文件,或者它可能存在但运行WAS服务器的用户无法读取。

此外,该路径看起来像Windows路径。您的QA环境是Windows还是Linux?

在任何情况下,这样的文件路径都应该由JNDI变量指定,或者在目标环境的特定于应用程序的属性文件中指定。

另一种可能性是您的用户正在本地文件系统上选择一个文件,需要将其上传到服务器进行处理。服务器无法看到客户端文件系统。如果是这样,你可以做更多编码......

答案 1 :(得分:1)

输出filePath变量,您会看到问题。

该变量的内容不是有效路径。您提供的代码段中不包含您的代码问题。输出filePath变量,您将看到它不是有效路径。然后你需要追查原因。