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

在java中,操做文件File是一個對象,因此打開建立文件以後不用進行關閉,可是若是寫入讀取文件內容了,須要關閉流。java

在程序裏操做ftp,sftp時必定要關閉channelSftp和ftpclient等,操做文件時FileInputStream,FileOutputStream等輸入輸出流也要關閉。linux

關閉操做必定要放在finally裏。服務器

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

在linux服務器上能夠使用.net

ulimit -a

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

使用對象

lsof -p PId | wc -l

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

參考:http://www.javashuo.com/article/p-kzehdqkc-cc.htmlget

相關文章
相關標籤/搜索