您可以在單一行中要求整個工具組
//> 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
OS-Lib 會在 stream
傳回的產生器耗盡後關閉檔案。
此頁面的貢獻者
內容
- 簡介
- 使用 MUnit 進行測試
- 如何撰寫測試?
- 如何執行測試?
- 如何執行單一測試?
- 如何測試例外狀況?
- 如何撰寫非同步測試?
- 如何管理測試的資源?
- MUnit 還有什麼功能?
- 使用 OS-Lib 處理檔案和程序
- 如何讀取目錄?
- 如何讀取檔案?
- 如何撰寫檔案?
- 如何執行程序?
- OS-Lib 還有什麼功能?
- 使用 uPickle 處理 JSON
- 如何存取 JSON 中的值?
- 如何修改 JSON?
- 如何將 JSON 反序列化為物件?
- 如何將物件序列化為 JSON?
- 如何讀寫 JSON 檔案?
- uPickle 還有什麼功能?
- 使用 sttp 傳送 HTTP 要求
- 如何傳送要求?
- 如何建構 URI 和查詢參數?
- 如何傳送帶有主體的請求?
- 如何傳送和接收 JSON?
- 如何透過 HTTP 上傳檔案?
- sttp 還有哪些功能?