你可以在一行中要求整个工具包
//> using toolkit latest
或者,你只需要求 OS-Lib 的特定版本
//> using dep com.lihaoyi::os-lib:0.9.1
在你的 build.sbt
中,你可以添加对工具包的依赖
lazy val example = project.in(file("example"))
.settings(
scalaVersion := "3.2.2",
libraryDependencies += "org.scala-lang" %% "toolkit" % "0.1.7"
)
或者,你只需要求 OS-Lib 的特定版本
libraryDependencies += "com.lihaoyi" %% "os-lib" % "0.9.1"
在你的 build.sc
文件中,你可以添加对工具包的依赖
object example extends ScalaModule {
def scalaVersion = "3.2.2"
def ivyDeps =
Agg(
ivy"org.scala-lang::toolkit:0.1.7"
)
}
或者,你只需要求 OS-Lib 的特定版本
ivy"com.lihaoyi::os-lib:0.9.1"
读取文件
假设我们有文件的路径
val path: os.Path = os.root / "usr" / "share" / "dict" / "words"
然后我们可以使用 os.read
将整个文件读入字符串
val content: String = os.read(path)
要逐行读取文件,请替换 os.read.lines
。
我们可以找到字典中最长的单词
val lines: Seq[String] = os.read.lines(path)
println(lines.maxBy(_.size))
// prints: antidisestablishmentarianism
如果你想立即处理行,而不是一次将它们全部读入内存,还可以使用 os.read.lines.stream
。例如,如果我们只想读取第一行,最有效的方法是
val lineStream: geny.Generator[String] = os.read.lines.stream(path)
val firstLine: String = lineStream.head
println(firstLine)
// prints: A
一旦 stream
返回的生成器耗尽,OS-Lib 将负责关闭文件。
此页面的贡献者
内容
- 简介
- 使用 MUnit 进行测试
- 如何编写测试?
- 如何运行测试?
- 如何运行单个测试?
- 如何测试异常?
- 如何编写异步测试?
- 如何管理测试的资源?
- MUnit 还能做什么?
- 使用 OS-Lib 处理文件和进程
- 如何读取目录?
- 如何读取文件?
- 如何写入文件?
- 如何运行进程?
- OS-Lib 还能做什么?
- 使用 uPickle 处理 JSON
- 如何访问 JSON 中的值?
- 如何修改 JSON?
- 如何将 JSON 反序列化为对象?
- 如何将对象序列化为 JSON?
- 如何读写 JSON 文件?
- uPickle 还能做什么?
- 使用 sttp 发送 HTTP 请求
- 如何发送请求?
- 如何构造 URI 和查询参数?
- 如何发送带有正文的请求?
- 如何发送和接收 JSON?
- 如何通过 HTTP 上传文件?
- sttp 还能做什么?