2012-08-08 135 views
-2

我有一个web服务运行在tomcat上,并且想执行一些fileIO。创建文件失败

File f = new File(test.txt); 
new BufferedReader(new FileReader(test.txt)); 

结果:

java.io.FileNotFoundException: test.txt 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(FileInputStream.java:138) 
    at java.io.FileInputStream.<init>(FileInputStream.java:97) 
    at java.io.FileReader.<init>(FileReader.java:58) 

我这么想吗?将我的代码作为本地独立应用运行,按预期工作。但在tomcat上导致异常。

回答

4

您需要先创建文件。 File对象实际上只是文件路径的表示,而不是文件本身。

f.createNewFile() 
2
if (!f.exists()) 
{ 
    f.createNewFile(); 
} 
0

运行我的代码作为本地独立的应用程序工作正常。但在tomcat上导致异常。

您正在使用相对于工作目录的路径。当您将其作为独立应用运行时,我假设您在运行应用的目录中具有该文件。 Web服务器的工作目录通常是服务器的bin,所以你说你期望文件在那里。

使用完整路径或通过getResourceAsInputStream()使用应用程序的资源是个好主意。