亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

file.delete()返回false,即使file.exists()

file.delete()返回false,即使file.exists()

慕工程0101907 2019-07-30 14:55:09
file.delete()返回false,即使file.exists(),file.canRead(),file.canWrite(),file.canExecute()都返回true我正在嘗試刪除文件,在寫完文件后,用FileOutputStream。這是我用來編寫的代碼:private void writeContent(File file, String fileContent) {     FileOutputStream to;     try {         to = new FileOutputStream(file);         to.write(fileContent.getBytes());         to.flush();         to.close();     } catch (FileNotFoundException e) {         // TODO Auto-generated catch block         e.printStackTrace();     } catch (IOException e) {         // TODO Auto-generated catch block         e.printStackTrace();     }}如圖所示,我刷新并關閉流,但是當我嘗試刪除時,file.delete()返回false。我刪除前檢查,看看是否該文件存在,并且:file.exists(),file.canRead(),file.canWrite(),file.canExecute()所有返回true。在調用這些方法后,我嘗試file.delete()返回false。有什么我做錯了嗎?
查看完整描述

3 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

Java中的另一個錯誤。我很少找到他們,只是我10年職業生涯中的第二個。正如其他人所提到的,這是我的解決方案。我有幽冥使用過System.gc()。但就我而言,這絕對是至關重要的。奇怪的?是!

finally{
    try
    {
        in.close();
        in = null;
        out.flush();
        out.close();
        out = null;
        System.gc();
    }
    catch (IOException e)
    {
        logger.error(e.getMessage());
        e.printStackTrace();
    }}


查看完整回答
反對 回復 2019-07-30
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

這個訣竅很奇怪。事情是我以前讀過文件的內容,我用過BufferedReader。讀完后,我關閉了緩沖區。

同時我換了,現在我正在閱讀內容FileInputStream。完成閱讀后,我關閉了流?,F在它正在發揮作用。

問題是我對此沒有解釋。

我不知道BufferedReaderFileOutputStream不相容。


查看完整回答
反對 回復 2019-07-30
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

我嘗試過這個簡單的事情似乎很有效。

file.setWritable(true);file.delete();

這個對我有用。

如果這不起作用,請嘗試使用sudo運行Java應用程序(如果在Linux上)和管理員運行Windows時。只是為了確保Java有權更改文件屬性。


查看完整回答
反對 回復 2019-07-30
  • 3 回答
  • 0 關注
  • 2602 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號