too many open files(打開的文件過多)解決方法


在java中,操作文件File是一個對象,所以打開創建文件之后不用進行關閉,但是如果寫入讀取文件內容了,需要關閉流。

在程序里操作ftp,sftp時一定要關閉channelSftp和ftpclient等,操作文件時FileInputStream,FileOutputStream等輸入輸出流也要關閉。

關閉操作一定要放在finally里。

如果操作頻繁而沒有關閉的話,一般會報錯     java.net.SocketException: 打開的文件過多,這時候詳細檢查程序,檢查sftp或者ftp工具類,檢查處理類的try-catch-finally是否有邏輯問題。

在linux服務器上可以使用

ulimit -a

查看當前系統設置的最大句柄數。

使用

lsof -p PId | wc -l

查看某程序打開了多少文件。

參考:https://blog.csdn.net/roy_70/article/details/78423880


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM