关闭 Java 8 流

2024-01-31

如果我们像这样使用 Java 8 Streamlist.stream().filter(....).collect(..).....这个流什么时候关闭?

作为下一个示例,我们关闭流是一种好的做法吗?

Stream<String> stream = list.stream();
String result = stream.limit(10).collect(Collectors.joining(""));
stream.close();

通常根本不需要关闭流。您只需要关闭使用 IO 资源的流即可。

来自流文档 https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html:

流有一个BaseStream.close()方法与实施AutoCloseable,但几乎所有流实例实际上并不需要在使用后关闭。一般来说,只有源是 IO 通道的流(例如由Files.lines(Path, Charset))将需要关闭。大多数流由集合、数组或生成函数支持,不需要特殊的资源管理。 (如果流确实需要关闭,则可以在 try-with-resources 语句中将其声明为资源。)

If您需要关闭流,那么最佳实践是使用 try-with-resources 语句:

try ( Stream<String> stream = Files.lines(path, charset) ) {
    // do something
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关闭 Java 8 流 的相关文章

随机推荐

  • 在 Rails 3 中执行任务时显示加载屏幕

    如果我的 创建 操作需要一段时间才能加载 由于执行 API 调用然后进行计算 向用户显示 加载屏幕 的最佳方式是什么而这个任务是在后台执行的 编写一些 AJAX 魔法 在激活时显示加载图像 并在 AJAX 调用完成时隐藏它 如果你不想使用
  • axios有能力检测重定向吗?

    The Fetch API响应接口 https developer mozilla org en US docs Web API Response has a 只读标志 https developer mozilla org en US d
  • 同时录制和播放音频

    任何人都可以帮助我在 iPhone 上同时录制和播放音频 您可以使用 AVFoundation 框架 它有AVAudioPlayer来播放音频文件和AVAudioRecorder来录制 您必须记住 录音机只能使用麦克风进行录音 因此 同时播
  • Python中正态分布的曲线拟合

    我想计算正态分布数据的百分位数 所以我首先将数据拟合到正态分布 下面是示例 from scipy stats import norm import numpy as np from scipy optimize import curve f
  • Django:无法从另一个应用程序导入模型

    我希望就我遇到的这个问题寻求一些帮助 我仍在学习 Django 和 Python 并遇到了这个我无法找到答案的特定问题 我创建了一个名为 新闻 的新应用程序 并为该应用程序设置了模型 使用管理界面我创建了一些数据 从我的 Pages 应用程
  • Go viper .yaml 值环境变量覆盖

    我正在努力拥有application yamlgo 应用程序中的文件包含 RMQ HOST 我想用环境变量覆盖的值 In application yaml我有 rmq test host RMQ HOST port RMQ PORT 在我的
  • 更改用户登录名后认证错误

    我们有一位最近更改了姓名的用户 假设旧用户名是 old name 新用户名是 new name 在 AD 中编辑详细信息并使用新用户名注销 登录后 我们的 ASP NET 应用程序显示旧名称 纯 ASP NET 无 MVC 使用 Windo
  • 如何在 obj-C 的 C 函数中向自己发送消息?

    我有一个 C 函数 音频队列服务中的回调函数 我想向自己发送消息 怎么做 如果我输入 self message 则会出现错误 Use of undeclared identifier self 您不会在实时回调中执行 objc 消息 例如音
  • Guzzle HTTP 请求从 POST 转换为 GET

    当我尝试向外部 API 发布帖子时 发生了一件非常奇怪的事情 我尝试向 URL 发出 POST 请求 但 Guzzle 发出 GET 请求 这是对此 API 的合法操作 但返回不同的内容 这是代码 request this gt clien
  • 在 ember 中如何在 Ember.Object.extend 上创建一个可以访问 json 服务的类方法

    很抱歉问这样一个简单的问题 但我正在考虑从 jQuery 迁移到 Ember 并试图在不使用 ember data 的情况下找出调用 响应 json 我的一个问题是人们如何建议使用类方法 举例来说 我有一个像这样的帖子对象 Hex Post
  • ARM ELF 对象内的函数大小不正确

    readelf 目标文件的输出 Symbol table symtab contains 15 entries Num Value Size Type Bind Vis Ndx Name 0 00000000 0 NOTYPE LOCAL
  • 通过CSS改变PNG图像的颜色?

    给定一个显示白色简单形状的透明 PNG 是否有可能通过 CSS 以某种方式改变它的颜色 某种覆盖或什么不是 您可以使用过滤器 webkit filter and filter 过滤器对于浏览器来说相对较新 但根据以下 CanIUse 表 超
  • java.net.URLEncoder.encode(String) 已弃用,我应该使用什么代替?

    我在使用时收到以下警告java net URLEncoder encode warning deprecation encode java lang String in java net URLEncoder has been deprec
  • 有条件地将列设置为 Postgres 中的默认值

    我有一个 PostgreSQL 8 4 表 其中有一个自动递增但可为空的整数列 我想更新一些列值 如果该列为 NULL 则将其设置为其默认值 这将是从序列自动生成的整数 but无论哪种情况我都想返回它的值 所以我想要这样的东西 UPDATE
  • 使用 ruby​​ 将存储为有符号的无符号整数转换回原始值

    C 程序将它认为是 64 位无符号整数放入 Postgres 数据库中类型为 int8 的列中 对于 Postgres int8 始终是 signed int8 没有 unsigned int8 这样的东西 因此 我的 Ruby 程序将从
  • Codeigniter 和 PHPWord

    我正在尝试阅读一些文件 所以我使用PHPWord 这是我在图书馆里得到的
  • Swift 2 为协议添加了协议一致性

    我可以通过 swift 扩展向协议添加协议一致性吗 Plain old protocol here protocol MyData var myDataID Int get 我想做MyData协议默认相等 只需比较ID extension
  • 让 Json.NET + MongoDB Bson 协同工作

    我正在尝试将一些 Json NET json 序列化与 MongoDB 结合起来 我有一个与此类似的结构 public class Master props public Detail Details get set public clas
  • 黄油刀不会注射

    我正在尝试使用牛油刀 http jakewharton github io butterknife 这些天我在 Android Studio 工作 但它因一些奇怪的问题而让我失望 我曾经在 eclipse 上尝试过 Butter Knife
  • 关闭 Java 8 流

    如果我们像这样使用 Java 8 Streamlist stream filter collect 这个流什么时候关闭 作为下一个示例 我们关闭流是一种好的做法吗 Stream