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

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

有資源泄漏警告,但我似乎無法關閉它

有資源泄漏警告,但我似乎無法關閉它

德瑪西亞99 2023-03-17 13:46:07
這里的代碼給出了一個警告,即Resource leak: 'f' is never closed. 如果我在 try 塊內關閉 f 它會起作用,但如果我放在f.close()finally 塊內它就不起作用。它顯示錯誤f cannot be resolved。所以有什么問題?因此,該程序應該從用戶那里獲取輸入并將其保存在 .doc 文件中,然后從同一文件中讀取數據并將其打印出來。如果不是很明顯,我正在學習 Java。所以代碼有效,但我注意到有一個f未關閉的警告。我把f.close()語句放在塊中finally。它在那里顯示錯誤。close 語句在塊中時運行,但在塊中try無法識別。ffinallytry {    RandomAccessFile f = new RandomAccessFile("E:\\emp.doc","r");    for (i = 0; i < size; i++) {        id1[i] = f.read();        name[i] = f.readUTF();        add[i] = f.readUTF();        sal[i]=f.readDouble();        if (sal[i] > 25000) {            System.out.println("ID:" + id1[i] + "\nName: " + name[i] + "\nAddress:" + add[i] + "\nSalary" + sal[i]);        }    }} catch (Exception ex) {    ex.printStackTrace();}//finally {//  f.close();//}因此,在代碼中,如果我不放置該程序塊,該程序將運行但會顯示未關閉的finally警告。f如果我嘗試將其放入塊close內try,則不會有任何警告。但是如果我把塊放在close里面finally就會出現錯誤f cannot be resolved。那么我該怎么做才能解決這個警告呢?
查看完整描述

1 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

改成

try ( RandomAccessFile f = new RandomAccessFile("E:\\emp.doc","r")){
....
}

不需要關閉,因為它會在 try-scope 結束后自動調用。


查看完整回答
反對 回復 2023-03-17
  • 1 回答
  • 0 關注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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