scala会自动关闭InputStream吗?

2023-12-29

我是 scala 的新手,不熟悉流关闭机制。我写了一些这样的代码。

def loadResourceAsString(path: String) = {

  val is = this.getClass().getResourceAsStream(path)

  Source.fromInputStream(is).getLines().mkString("\n")

}

我在scala源代码中找到了这个。这Source将返回一个 BufferedSource ,它重写 close 方法来关闭输入流。

def fromInputStream(is: InputStream)(implicit codec: Codec): BufferedSource =
  createBufferedSource(is, reset = () => fromInputStream(is)(codec), close = () => is.close())(codec)

如果出现异常,scala会通过自己的机制执行close方法吗?

或者,我应该关闭输入流finally像java一样显式阻塞?


简而言之 - 不。createBufferedSource创造BufferedSource与给定的close函数,但从不调用reset不是为了close

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

scala会自动关闭InputStream吗? 的相关文章

  • 为什么我的 Project Euler Problem 12 算法这么慢?

    我已经在 Scala 中为 PE P12 创建了解决方案 但速度非常非常慢 有人可以告诉我为什么吗 如何优化这个 calculateDevisors 简单的方法和calculateNumberOfDivisors 除数函数具有相同的速度 i
  • 将无形状 HList 转换为 TupleN,其中元组形状不需要与 HList 形状完全匹配

    我想创建相当于 def toTupleN A1 AN L lt HList l L TupleN A1 AN 代码使用toTupleN仅当恰好有一个时才应该编译N中的值的组合l可以从中创建元组 其他任何内容都应该生成编译时错误 应考虑可用的
  • 为什么调用 take() 方法时 Slick 会生成子查询

    I use Slick http slick typesafe com 1 0 0 RC1 我对表对象有这样的定义 object ProductTable extends Table Int String String String Dou
  • 如何检查字符串中是否包含某个字符?

    我想检查字符串是否包含该字符 我正在编写一个刽子手代码 例如 下面是要猜测的单词 scala 但看起来像 至用户 假设用户输入字母 a 那么它一定看起来像 a a def checkGuess if result contains user
  • Spark RDD默认分区数

    版本 Spark 1 6 2 Scala 2 10 我正在执行以下命令spark shell 我试图查看 Spark 默认创建的分区数量 val rdd1 sc parallelize 1 to 10 println rdd1 getNum
  • 新式(“内联”)宏需要 scala.meta

    我刚刚更新到 scala meta 2 0 0 M1 和最新的 scala 2 12 3 现在宏不再编译 我所做的唯一更改是将元版本从 1 8 0 更改为 2 0 0 M1 错误 新式 内联 宏需要 scala meta 有谁知道是否有快速
  • Scala 集合不一致

    为什么 Scala Collections API 中的集合和列表之间缺乏一致性 例如 有不可变的 Set 但也有可变的 Set 如果我想使用后者 我可以简单地这样做 val set Set A set new A 但是 本身不存在可变列表
  • 将 Scala 库转换为 DLL (.NET)

    我正在尝试从 scala 类创建一个 Dll 我将 IntelliJ 与 SBT 一起使用 我已经找到了一种使用 ikvm converter 将 jar 文件转换为 Dll 的方法 现在的问题是 当我在 SBT 下使用 package 从
  • HttpRequest PUT内容到poco库中

    我想使用 HTTP PUT 请求将一些数据从 C 应用程序发送到服务器 我在用poco http pocoproject org我的应用程序中的网络库 我正在使用这个代码片段 HTTPClientSession session uri ge
  • 阶乘的 Scala 排列

    我怎样才能找到n Scala 中某些字母的排列 Scala 2 9 RC1 scala gt abc permutations toList res58 List String List abc acb bac bca cab cba
  • 在 C# 中使用(IDisposable obj = new ...) 在流中写入代码块(例如 XML)

    我已经开始使用实现 IDisposable 的类通过 using 语句在流中写入块 这有助于保持正确的嵌套并避免丢失或错误放置开始 结束部件 基本上 构造函数写入块的开头 例如打开 XML 标签 Dispose 写入结束 例如关闭 XML
  • 如何在 Scala 中打印任何内容的列表?

    目前我有一个打印整数的方法 def printList args List Int Unit args foreach println 我如何修改它 使其足够灵活 可以打印任何内容的列表 您不需要专用的方法 所需的功能已经在集合类中 pri
  • Play Framework 2.3 (Scala) 中的自定义 JSON 验证约束

    我设法使用自定义约束实现表单验证 但现在我想对 JSON 数据执行相同的操作 如何将自定义验证规则应用于 JSON 解析器 示例 客户端的 POST 请求包含用户名 username 我不仅要确保该参数是非空文本 而且还要确保该用户确实存在
  • Scala:如何在超类上实现克隆方法,并在子类中使用它?

    我可能会以错误的方式处理这个问题 但我想要一个像这样的对象 class MyDataStructure def myClone val clone new MyDataStructure do stuff to make clone the
  • Scala Tuple2Zipped 与 IterableLike zip

    两种实现有什么区别 这个比那个好吗 有一篇博客文章说 Tuple2Zipped 性能更好 但没有提供原因 并且查看源代码我没有看到差异 val l1 List 1 2 3 val l2 List 5 6 7 val v1 l1 zip l2
  • Spark Scala 将列从一个数据帧复制到另一个数据帧

    我有一个原始数据框的修改版本 我在其上进行了聚类 现在我想将预测列恢复为原始 DF 索引没问题 因此匹配 我该怎么做 使用这段代码我得到一个错误 println Predicted dfWithOutput show println Ori
  • 运行具有外部依赖项的 Scala 脚本

    我在 Users joe scala lib 下有以下 jar commons codec 1 4 jar httpclient 4 1 1 jar httpcore 4 1 jar commons logging 1 1 1 jar ht
  • Java 中的“Lambdifying”scala 函数

    使用Java和Apache Spark 已用Scala重写 面对旧的API方法 org apache spark rdd JdbcRDD构造函数 其参数为 AbstractFunction1 abstract class AbstractF
  • 类型级编程有哪些示例? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我不明白 类型级编程 是什么意思 也无法使用Google找到合适的解释 有人可以提供一个演示类型级编程的示例吗 范式的解释和 或定义将
  • 使用 scala 在 Flink 中进行实时流预测

    弗林克版本 1 2 0斯卡拉版本 2 11 8 我想使用 DataStream 来使用 scala 中的 flink 模型进行预测 我在使用 scala 的 flink 中有一个 DataStream String 其中包含来自 kafka

随机推荐

  • 使用 Java 中的 Lambda 函数进行 AWS S3 事件通知

    我正在尝试使用 Lambda 函数进行 S3 Put 事件通知 当我在 S3 存储桶中放置 添加任何新的 JSON 文件时 应该调用我的 Lambda 函数 我面临的挑战是没有足够的文档来用 Java 实现这样的 Lambda 函数 我找到
  • Angular 2 - 获取 Observable 中已更改的 FormControl 的值

    我有一个简单的表单FormBuilder this contactForm formBuilder group name email phone 我想观察每个控件的更改 并在发生这种情况时使用更新后的值运行函数 getContacts va
  • 如何在 Visual Studio 2010 中添加 ASP.NET MVC 3 Web 应用程序?

    我的VS 2010如下 微软视觉工作室 2010 版本 10 0 30319 1 RTMRel Microsoft NET Framework 版本 4 0 30319 RTMRel 安装版本 旗舰版 ASP NET MVC 3 Web 应
  • 如何从 IntelliJ IDEA 内部重命名本地 Git 分支?

    您可以使用 IntelliJ IDEA 的 Git 插件做很多事情 但我还没有找到重命名分支的方法 有吗 我知道我总是可以打开终端并执行git branch m source target 但我也希望找到一个 GUI 解决方案 此功能有几个
  • Spring Boot计划任务不适用于docker容器

    我的 Spring Boot 项目在 docker 容器上运行时遇到问题 如果我以恶魔化方式运行容器 docker run d 当我在后台运行非图像时 一切正常 不幸的是 我必须将其作为妖魔化来运行 并且我不知道如何解决该问题 感谢您提供任
  • 使用“this->”的性能损失?

    考虑 C 类中两个类似的 C 成员函数的示例 void C function Foo new f f new f and void C function Foo new f this gt f new f 这些函数的编译方式是否相同 使用是
  • 释放内存的重要性? [复制]

    这个问题在这里已经有答案了 可能的重复 当 malloc 之后不释放时 到底会发生什么 https stackoverflow com questions 654754 what really happens when you dont f
  • MASM:在 .data 声明中使用当前位置计数器 ($)

    我遇到了有关 MASM 中当前位置计数器的问题 这是我的汇编代码 我使用 Visual Studio 2013 Express 进行汇编 386 model flat stdcall stack 8192 ExitProcess proto
  • 使用 JavaScript 读取 CSS 值

    这有效 div style width 100 div 这确实not work div div 我也尝试过将 css 样
  • 如何避免重复将大文件加载到Python脚本中?

    我编写了一个 python 脚本来获取一个大文件 一个矩阵 50k 行 X 500 列 并将其用作数据集来训练随机森林模型 我的脚本有两个函数 一个用于加载数据集 另一个用于使用所述数据训练随机森林模型 这些都工作得很好 但文件上传大约需要
  • 使用 Node.js 设置 SSL

    我在 GoDaddy 购买了 SSL 证书 并使用以下 node js 服务器尝试设置它 var https require https module for https fs require fs required to read cer
  • 使用 Oracle 客户端 64 位和 Visual Studio 2010 时出现 BadImageFormatException!

    我们的一名开发团队成员遇到了错误 尝试加载 Oracle 客户端库抛出 BadImageFormatException 它似乎 当在 64 位模式下运行并安装了 32 位 Oracle 客户端组件时 会出现此问题 但配置系统的是我 以下是规
  • 点击事件被列表视图父项捕获

    我正在编写一个在 Firemonkey 中使用的自定义开关对象TListView每个项目的控制 除了一个奇怪的故障之外 一切都按预期进行 当用户单击其中一项而不是特定的开关对象时 它无论如何都会切换开关 我假设MouseDown当用户单击列
  • R 数据帧聚合列表

    我确实有 53 个数据框 purchase01 到purchase53 的列表 按日期排序 有 18 个变量和不同的行数 已尝试 但无法在下面粘贴示例 我想要总计的每个不同的数据帧通过其重复值 V9 因子 与列 V2 数字相加 我还没找到答
  • AFHTTPRequestOperationManager 返回块中的数据

    我在我的应用程序中创建了一个 APIController 它有几个方法可以调用特定的 api url 并返回一个用 api 调用结果填充的模型对象 该 API 使用 json 到目前为止我的代码如下所示 Definition MyModel
  • 自定义单元格:致命错误:在展开可选值时意外发现 nil

    我有一个带有创建为 xib 的自定义单元格的表格视图 我没有使用故事板 我有一个问题 我无法用来自网络服务结果的数据填充我的表 另外 我在自定义单元格中有 4 个标签 在我的自定义单元类中 当我尝试为每个项目设置标签时 它给了我如上所述的致
  • Django从apache获取环境变量

    我似乎无法让 Django 读取我从环境变量中配置的设置 我遵循了一些在线指南 并发现了一些其他问题 因此尝试配置如下 阿帕奇配置 WSGIScriptAlias v4 usr local myproject4 myproject4 wsg
  • 如何在 ASP.NET DataRepeater 控件中执行条件逻辑?

    我将 DataRepeater 控件绑定到具有许多列的表 我只想显示其中的一个子集 具体取决于填充的内容 我应该如何 在哪里进行数据中继器中的条件测试 这是我的 itemtemplate 中的代码 我得到的错误是 CS0103 名称 容器
  • 尝试从 python 写入 cassandra 时 CQL 查询中出现语法错误

    因此 我正在用 python 构建一个应用程序 该应用程序从 twitter 获取数据 然后将其保存到 cassandra 我当前的问题在于一个从kafka读取数据并尝试将其写入cassandra的脚本 如下所示 import thread
  • scala会自动关闭InputStream吗?

    我是 scala 的新手 不熟悉流关闭机制 我写了一些这样的代码 def loadResourceAsString path String val is this getClass getResourceAsStream path Sour