如何在 Scala JLine 调用之间保存和加载历史记录

2024-02-29

我在用着Scala JLine http://search.maven.org/#artifactdetails%7Corg.scala-lang.virtualized%7Cjline%7C2.10.2-RC1%7Cjar在我的 CLI 程序中。它工作正常,但每次我重新启动程序时它都会忘记我的历史记录。我看到一个名为FileHistory,我看到ConsoleReader类有一个方法叫做setHistory()它以FileHistory。我希望调用该方法会导致它创建或加载并保存包含我的历史记录的文件。但事实并非如此。

不幸的是,文档几乎不存在。如何才能在下次运行支持 JLine 的程序时记住我在上次运行中输入的命令?

Update

米兰德斯给出的正确答案如下。感谢 mirandes 和 som-snytt 的帮助(是的溶剂)回复。


这对我有用:

import scala.tools.jline.console.ConsoleReader
import scala.tools.jline.console.history.FileHistory
import java.io.File

val reader : ConsoleReader = new ConsoleReader() 

val history = new FileHistory(new File(".history"))
reader.setHistory(history) 

在退出应用程序之前,请确保刷新历史记录。

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

如何在 Scala JLine 调用之间保存和加载历史记录 的相关文章

随机推荐