如果没有关闭扫描仪,java进程会保持文件打开状态吗?

拉吉

我发现一个Java进程抛出此错误:

Caused by: java.net.SocketException: Too many open files

我知道可以通过增加Unix中打开文件的限制来纠正此问题,但是,我想找出为什么Java进程没有首先关闭文件的原因。

我检查了源代码,发现下面的代码段用于从文件中读取数据。

String content = new Scanner(new File("../../example/test.txt"), "UTF-8").useDelimiter("\\A").next();

我认为这是问题所在,因为阅读后扫描仪没有关闭?这可能是问题吗?还是因为没有创建扫描仪对象,所以不需要将其关闭?

学徒

我认为这是问题所在,因为阅读后扫描仪没有关闭?

这很可能是罪魁祸首。如果AScanner可用于垃圾回收,则可以隐式关闭A。但是,由于无法预测垃圾收集器何时运行,因此您永远不要依赖于此。相反,Scanner完成操作后应明确关闭这意味着您应该遵循以下模式:

Scanner scan = null;

try {
    scan = new Scanner(file);
    String token = scan.next();
    // do something with token
} catch (Exception ex) {
    // print out error message
} finally
    scan.close();
}

当然,根据您的确切需求,这可能是通过声明throws子句简单地传播异常的方法。主要思想是,无论是否引发异常,您都需要在某处需要一个finally子句以确保将其Scanner关闭。

请注意,Java 7引入了“尝试资源”,这使我们更轻松地处理这种情况。如果您使用的是Java 7,建议您对此进行研究。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我如何找到有关系统进程保持打开状态的文件句柄的更多信息?

来自分类Dev

如果我重新安装扫描仪,旧的扫描仪会关闭吗?

来自分类Dev

关闭扫描仪会影响性能吗

来自分类Dev

未引用的扫描仪对象会自动关闭吗?

来自分类Dev

关闭窗口后,进程保持打开状态

来自分类Dev

我的文件会保持打开或自动关闭状态吗?

来自分类Dev

Java:没有这样的文件或目录(使用扫描仪类)

来自分类Dev

如果关闭扫描仪,我是否必须关闭FileInputStream

来自分类Dev

使NSDocument保持打开状态且没有任何窗口

来自分类Dev

关闭WebResponse,还是保持打开状态?

来自分类Dev

在 Java 中打开新进程并保持当前进程处于打开状态

来自分类Dev

带有Enum,Java的扫描仪

来自分类Dev

如果我不关闭扫描仪怎么办?

来自分类Dev

媒体扫描仪正在扫描,但没有刷新(Android)

来自分类Dev

简单扫描:没有可用的扫描仪,Ubuntu 15.04

来自分类Dev

有没有一种方法可以使用“使用”但将文件保持打开状态?

来自分类Dev

如果鼠标在 Minecraft 中向左滚动,Dock 会保持打开状态

来自分类Dev

如何在Java中关闭扫描仪?

来自分类Dev

Java的扫描仪与输入字符串应该关闭?

来自分类Dev

Java运行错误...扫描仪已关闭?

来自分类Dev

如何在Java中关闭扫描仪?

来自分类Dev

在Java中关闭扫描仪的目的是什么?

来自分类Dev

在Java中关闭扫描仪的目的是什么?

来自分类Dev

java.lang.IllegalStateException:扫描仪关闭ERROR

来自分类Dev

Java中的扫描仪可以读取pdf文件吗?使用流阅读

来自分类Dev

PowerPoint 2013宏在关闭命令后保持文件锁定为打开状态

来自分类Dev

扫描仪中没有文本后,Java执行流(循环中)冻结

来自分类Dev

Jenkins 2.7.1中没有Sonarqube扫描仪配置

来自分类Dev

扫描仪没有停止读取输入

Related 相关文章

  1. 1

    我如何找到有关系统进程保持打开状态的文件句柄的更多信息?

  2. 2

    如果我重新安装扫描仪,旧的扫描仪会关闭吗?

  3. 3

    关闭扫描仪会影响性能吗

  4. 4

    未引用的扫描仪对象会自动关闭吗?

  5. 5

    关闭窗口后,进程保持打开状态

  6. 6

    我的文件会保持打开或自动关闭状态吗?

  7. 7

    Java:没有这样的文件或目录(使用扫描仪类)

  8. 8

    如果关闭扫描仪,我是否必须关闭FileInputStream

  9. 9

    使NSDocument保持打开状态且没有任何窗口

  10. 10

    关闭WebResponse,还是保持打开状态?

  11. 11

    在 Java 中打开新进程并保持当前进程处于打开状态

  12. 12

    带有Enum,Java的扫描仪

  13. 13

    如果我不关闭扫描仪怎么办?

  14. 14

    媒体扫描仪正在扫描,但没有刷新(Android)

  15. 15

    简单扫描:没有可用的扫描仪,Ubuntu 15.04

  16. 16

    有没有一种方法可以使用“使用”但将文件保持打开状态?

  17. 17

    如果鼠标在 Minecraft 中向左滚动,Dock 会保持打开状态

  18. 18

    如何在Java中关闭扫描仪?

  19. 19

    Java的扫描仪与输入字符串应该关闭?

  20. 20

    Java运行错误...扫描仪已关闭?

  21. 21

    如何在Java中关闭扫描仪?

  22. 22

    在Java中关闭扫描仪的目的是什么?

  23. 23

    在Java中关闭扫描仪的目的是什么?

  24. 24

    java.lang.IllegalStateException:扫描仪关闭ERROR

  25. 25

    Java中的扫描仪可以读取pdf文件吗?使用流阅读

  26. 26

    PowerPoint 2013宏在关闭命令后保持文件锁定为打开状态

  27. 27

    扫描仪中没有文本后,Java执行流(循环中)冻结

  28. 28

    Jenkins 2.7.1中没有Sonarqube扫描仪配置

  29. 29

    扫描仪没有停止读取输入

热门标签

归档