在 Java 中关闭流

2023-11-30

为什么我们需要关闭 FileInputStream(以及一般的流)任何状况之下在我们离开该计划之前?否则会发生什么?如果程序在程序中显式关闭输入流之前停止,那么该流不是也会自动关闭吗?


文件句柄是稀缺的、有限的资源。如果不正确清理它们,您可能会耗尽它们,就像数据库连接一样。

如果您编写了一个只有一个用户的小程序,那么您可以不用马虎,也不用在finally 块中关闭。

但是,如果您最终在具有许多用户和文件句柄的应用程序中使用该习惯用法,则可能会遇到问题。

“首先我们养成习惯,然后习惯养成我们。”即使没有必要,我也会尝试应用最佳实践。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中关闭流 的相关文章

  • 使用 Guice 注入类集合

    我正在尝试用 Google Guice 2 0 注入东西 我有以下结构 FooAction implements Action BarAction implements Action 然后我有一个带有以下构造函数的 ActionLibrar
  • 如何提取文件 jre-9/lib/modules?

    In JRE 9 lib目录 至少在 Windows 上 有一个名为modules其大小约为107 MB 是否可以提取该文件或在其中列出 java 模块 我可以看到一个名为jmod可以在jdk 9 bin jmod exe 但那是为了阅读
  • 如何在Java中优雅地处理SIGKILL信号

    当程序收到终止信号时如何处理清理 例如 我连接到一个应用程序 希望任何第三方应用程序 我的应用程序 发送finish注销时的命令 发送该信息最好说什么finish当我的应用程序被破坏时的命令kill 9 编辑1 kill 9无法被捕获 谢谢
  • 项目缺少所需的注释处理库

    我的 Eclipse IDE 突然在问题视图中显示 xxxx 项目缺少所需的注释处理库 xxxx M2 REPO 中的一些旧 jar 我用谷歌搜索 没有找到任何答案 为什么我的项目使用旧的 jar 以及错误来自哪里 To remove th
  • 检查 IPv4 地址是否在私有范围内

    在 Python 中 使用 IPy 模块您可以执行以下操作 gt gt gt ip iptype PRIVATE 有没有一个库或简单的方法可以在 Java 中执行相同的操作 似乎不完全是但是InetAddress有一些 isXX 方法 例如
  • JTextField 和 JTextArea

    JTextField 和 JTextArea 有什么不同 是否可以在一个班级中使用这两个班级 总之 JTextField 是单行文本字段 而 JTextArea 可以跨越多行 文档中清楚地解释了这些差异 文本区 http docs orac
  • 使用 JSch 分别为各个提示提供输入

    问题是 SSH 连接需要在常规登录后提供另一个用户 ID 和密码信息 我正在使用 JSch 连接到远程服务器 它接受以下形式的输入InputStream 和这个InputStream只能通过一次 由于会话是交互式的 这会导致问题 我尝试将输
  • Kafka Java Consumer 已关闭

    我刚刚开始使用卡夫卡 我面临着消费者的一个小问题 我用Java写了一个消费者 我收到此异常 IllegalStateException 此消费者已关闭 我在以下行中遇到异常 ConsumerRecords
  • 使用 JAX-WS 的 WebLogic 中没有模式导入的单个 WSDL

    如何使用 JAX WS 配置由 WebLogic 10 3 6 生成的 Web 服务 以将对象架构包含在单个 WSDL 文件声明 而不是导入声明 中 示例代码 界面 import javax ejb Local Local public i
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • 正则表达式在 Velocity 模板中不起作用

    我在 Test java 中尝试过这个 String regex lt s br s s gt String test1 lt br gt System out println test replaceAll regex 但是当我在速度模板
  • Cucumber DataTable 错误 - io.cucumber.datatable.UndefinedDataTableTypeException:无法将 DataTable 转换为 cucumber.api.DataTable

    尝试使用 cucumber selenium java intelliJ 运行场景 但在其中一个步骤中出现有关 DataTable 的错误 在我开始使用测试运行程序并更改周围的一些内容之前 数据表工作正常并正确转换该步骤的参数 但我就是无法
  • MongoDB java 驱动程序 3.0 在身份验证时无法捕获异常

    我超级卡住o 0 在尝试通过 Java 驱动程序进行身份验证时 存在捕获异常的问题 正如你可能会看到的Throwable类不工作 private MongoClient mongoClient private MongoDatabase m
  • 使用 HTTPServletRequestWrapper 包装请求参数

    我有一个可以验证 授权 REST 调用的过滤器 该过滤器需要访问请求参数 因此我为此编写了一个自定义 HTTPServletRequestWrapper import java util Collections import java ut
  • Java:一个函数有多种返回类型...可以使用泛型吗?

    为了简单起见 我有一些程序 如下所示 public String fetchValueAsString String key public DateTime fetchValueAsDateTime String key 我想要类似的东西
  • Java String ReplaceAll 方法给出非法重复错误?

    我有一个字符串 当我尝试运行时replaceAll方法 我收到这个奇怪的错误 String str something op str str replaceAll o n it works fine str str replaceAll n
  • android 中的 java.net.URL ..新手问题

    我是java新手 正在尝试android开发 以下代码生成 malformedURLException 有人可以帮助我识别异常吗 任何提示都会非常有帮助 package com example helloandroid import and
  • CXF:通过 SOAP 发送对象时如何排除某些属性?

    我使用 Apache CXF 2 4 2 当我将数据库中的某个对象返回给用户时 我想排除一些属性 例如密码 我怎样才能做到这一点无需创建临时的班级 有这方面的注释吗 根据 tomasz nurkiewicz 评论我应该使用 XmlTrans
  • 使用 AmazonSNSClient 发送短信时的授权

    aws 官方文档如何发送短信 http docs aws amazon com sns latest dg sms publish to phone html使用 java 中的 aws SDK 非常简单 但是 当发送如底部示例所示的消息时
  • 将数组值导出到 csv 文件 java

    我只需要帮助将数组元素导出到 csv 文件 我不知道我的代码有什么问题 任何帮助将不胜感激 谢谢 for int index 0 index lt cols length index FileWriter fw new FileWriter

随机推荐

  • 如何在 VBA 中以编程方式在某些工作表单元格数据旁边添加按钮?

    我有一个函数可以生成 100 行 和 2 列 的数据 对于每一行 在第三列中 我需要添加一个按钮 单击该按钮时 会弹出一个自定义模式对话框 为用户提供 4 个选项 按钮可供选择 知道如何做到这一点吗 我认为这足以让你走上一条美好的道路 Su
  • 将属性添加到数据存储后,如何向 EntityType 添加属性?

    我有一个实体框架代码优先模型 其中有一列未映射 我仍然希望在服务器和客户端之间保留该列 该模型看起来与此类似 但具有更多属性 public class OwnerInformation Key DatabaseGeneratedAttrib
  • python 请求中的 OpenSSL 错误

    在带有 OpenSSL 版本 1 1 1i 和 pyopenssl 版本 1 1 1i 的 arch linux 上运行 python 版本 3 9 1 当尝试将 https 代理与 requests 模块一起使用时 出现以下错误 Trac
  • Excel 中的混合数据类型,IMEX 不起作用

    我正在尝试将 xls 导出到数据表中 下面是我的连接字符串 string path xls source path OleDbConnection MyConnection new OleDbConnection provider Micr
  • 如何使程序的第二个实例将控制权传递回第一个实例?

    我已经用 Delphi XE3 创建了一个应用程序 我的应用程序有一个托盘图标 我为此使用 TCoolTrayIcon 因此当用户最小化它时 任务栏上没有图标 而仅在托盘图标上 为了避免我的应用程序出现多个实例 我使用以下代码 proced
  • 停止运行“worksheet_change”或 worksheet_calculate

    我有一张包含大量代码的工作表 该代码中有 worksheet change 和 worksheet calculate 函数 在某些过程中 在处理此工作表时 有时会不必要地运行此代码 是否有一行代码会阻止运行 worksheet chang
  • 将命令应用于所有提交

    为了收集有关 Git 存储库的一些统计信息 我正在寻找一种方法来执行以下操作 对于每个提交 执行一个命令 例如 du h 该命令应该在提交后从存储库基目录 按照它看起来的样子 运行 理想情况下 该命令可以访问提交哈希值和时间戳 一个用准 B
  • 如何从脚本本身获取 Bash 脚本所在的目录?

    如何获取某个目录的路径Bash脚本位于 inside那个脚本 我想使用 Bash 脚本作为另一个应用程序的启动器 我想将工作目录更改为 Bash 脚本所在的目录 这样我就可以对该目录中的文件进行操作 如下所示 application usr
  • findViewById 未定义

    Eclipse 将 findViewById int 标记为未定义 它对 getResources 做了同样的事情 但我能够通过调用 context getResources 来解决这个问题 如下所示 并且似乎无法为 findViewByI
  • 如何在android中的canvas中添加3张图片

    我有 3 张图像 我想将它们依次添加到画布上 这是我的代码 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setConten
  • Xcode 10 似乎破坏了 com.apple.commcenter.coretelephony.xpc

    我已经升级到Xcode 10 on High Sierra现在激励广告示例项目来自 AdMob 的投诉com apple commcenter coretelephony xpc工作不正常 是否有我必须启用的新权利 我搜索了几个小时却没有任
  • 按两个属性对对象数组进行排序

    我有一个对象数组 我想按两个属性进行排序 提醒时间戳 修改时间戳 排序顺序 desc 按一个属性对这个对象进行排序不是问题 但在这种情况下我不知道如何让它工作 假设时间戳本身排序正常 例如 ISO8601 和相同时区 请尝试 myArray
  • 如何使用 Apple Symbols 字体中的字形?

    我想在我的应用程序中使用 Apple Symbols 字体中的一种字形 我在CharactersPallete 来自Snow Leopard 中打开这个字体 这个字形的 锁符号 id GID 是5003 它不是字形的unicode编号 如何
  • ShellExecuteEx 在 Excel VBA 中崩溃

    由于 Windows 更新发生 API 调用ShellExecuteEx sExecuteInfo 崩溃 说 0x75F7A529 处未处理的异常 shell32 dll 访问冲突 读取位置0x68686903 我不知道这里出了什么问题 你
  • 与 Tkinter 跟踪相关的回调函数有哪些限制?

    我试图弄清楚如何实现一个回调函数 它可以做一些比打印输出更有意义的事情 我相当缺乏经验 所以我不确定回调函数应该或可以如何在Python 或任何其他语言 中实现 考虑以下 Python 代码 from Tkinter import def
  • 前台本地通知

    在警报中 通知在后台工作正常 如下所示 UILocalNotification notification1 UILocalNotification alloc init notification1 fireDate alramtime no
  • Wordpress 管理面板上的 jQuery 错误(tinyMCE 未定义)

    将 Wordpress 从 3 2 升级到 3 5 后 我在管理端收到 jQuery 错误 下面是错误 Error ReferenceError tinyMCE is not defined Source File http domainn
  • WPF 虚拟树视图中的滚动错误

    我在 WPF 中使用虚拟化树视图来显示具有大量子节点 5000 的 3 级深度层次结构
  • R - 使用查找表替换数据框中的值

    最近 我在尝试使用查找表替换数据框或矩阵中的特定值时遇到了一些麻烦 所以这代表要修改的original data V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 1 255 255 255 25
  • 在 Java 中关闭流

    为什么我们需要关闭 FileInputStream 以及一般的流 任何状况之下在我们离开该计划之前 否则会发生什么 如果程序在程序中显式关闭输入流之前停止 那么该流不是也会自动关闭吗 文件句柄是稀缺的 有限的资源 如果不正确清理它们 您可能