在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