2012-08-08 118 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()使用應用程序的資源是個好主意。