2013-08-27 33 views
0

我在學校有一個網絡驅動器,我有能力正常讀寫它,但是當我使用java獲取現有文本文件並嘗試寫入它時,我得到這個異常:FileNotFoundException - 進程無法訪問文件

java.io.FileNotFoundException: p:\CompSci_CheckIn_Name.txt (The process cannot access the file because it is being used by another process) 

我可以讀它只是罰款和所有的,但是當我試圖寫它,它拋出了我的異常。我可以寫信給我的桌面,閱讀桌面上的所有內容,但是當我嘗試使用網絡驅動器時,它會放棄。我怎麼能解決這個問題?

閱讀:

file = new File(directories[i], "CompSci_CheckIn_Name.txt"); 
readName = new BufferedReader(new FileReader(file)); 
userName = readName.readLine(); 
passed = true; 

寫作:

write = new PrintWriter(file); 
write.println(newUser); 
write.flush(); 
userName = newUser; 
write.close(); 

我已經嘗試過的BufferedWriter沒有運氣,同樣的結果。

+0

當您嘗試寫入文件時,該文件是否在任何其他程序中打開,甚至是在您的IDE中打開? – ars265

+0

不,我想知道你認爲網絡驅動器可以阻止任何代碼寫入它嗎?爲了防止任何軟件做到這一點?但是,字和東西的作品,所以給出了:( –

+0

)我的下一個問題是,你是否正在運行你的代碼,可以在不同的用戶下運行?如果是這樣,很有可能會影響事情。你使用IDE或者使用命令行來運行應用程序? – ars265

回答

5

使用後,你應該關閉的BufferedReader和的FileReader ..

把try/finally塊,並把close方法finally塊..

參考下codes..You將解決您的問題..: )

FileReader fr = null; 
BufferdReader br = null; 

try{ 
    fr = new FileRader(file); 
    br = new BufferedReader(fr); 

    // do something.. 

}finally{ 
    if(br != null) br.close(); 
    if(fr != null) fr.close(); 
} 
相關問題