gpt4 book ai didi

java - 为什么 `loadFont` 不关闭输入流?我应该关闭它吗?

转载 作者:搜寻专家 更新时间:2023-10-31 20:32:41 25 4
gpt4 key购买 nike

查看 Font#loadFont 的文档我看到了这句话:

This method does not close the input stream.

不幸的是,这没有得到解释或扩展。所以我的问题是:

  1. API 不关闭输入流的可能原因有哪些?您可能想重新使用流吗?我主要像这样使用这种方法:

    Font.loadFont(getClass().getResourceAsStream("path/to/font"), 13.0); 

    为了确保字体可用于我的应用程序,所以我从不重复使用输入流,而且我真的想不出我想要这样做的原因。

  2. 我应该自己关闭输入流吗?如果我不关闭输入流,我会遇到什么问题吗?过去我遇到过以这种方式加载字体的问题,一些配置了这种字体的标签开始显示正方形,而其他标签(在同一场景中!)保持正常工作。这可能与未关闭输入流有关吗?

最佳答案

每个涉及稀缺资源或外部资源(例如文件描述符或流)的 API 的文档都将明确由谁负责清理(在这种情况下,关闭流)。这有时被称为“所有权”。

在这种情况下,文档指出 loadFont 方法不取得流的所有权。因此它仍然属于你:关闭流是你的责任。

try-with-resources 语句是执行此操作的最佳方式。

关于java - 为什么 `loadFont` 不关闭输入流?我应该关闭它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38189680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com