java.nio.file.FileSystemException: xxx: Too many open files

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sayyy/article/details/83895764

前言

  • linux Redhat 7.0
  • spring boot 2.0.x
  • jdk1.8

长时间运行程序后,出现java.nio.file.FileSystemException: xxx: Too many open files错误。
很显然是因为文件打开未关闭造成的。

原因

Too many open files错误,因下面的代码引起的:

Path path = Paths.get("文件夹路径,如:/path");
DirectoryStream<Path> dirStream = Files.newDirectoryStream(path , "*.xml")
for (Path processPath :  dirStream ) {
       // 逻辑处理
}

修复

Path path = Paths.get("文件夹路径,如:/path");
DirectoryStream<Path> dirStream = Files.newDirectoryStream(path , "*.xml")
for (Path processPath :  dirStream ) {
       // 逻辑处理
}
dirStream.close();

说明

  • 本次直接提示了问题位置,较好处理。
  • 另一种问题,可能是:在A代码段未关闭文件io产生的泄漏,在B代码段抛出了异常。这样就不好处理。
  • 好的方式是:io打开之后,用完立即关闭。

猜你喜欢

转载自blog.csdn.net/sayyy/article/details/83895764