加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 18:12:10 所属栏目:安全 来源:网络整理
导读:我在CLI程序中使用 Scala JLine.它工作正常,但每次重新启动程序时都会忘记我的历史记录.我看到一个名为FileHistory的类,我看到ConsoleReader类有一个名为setHistory()的方法,它接受FileHistory的一个实例.我希望调用该方法会导致它创建或加载并保存包含我的
我在CLI程序中使用 Scala JLine.它工作正常,但每次重新启动程序时都会忘记我的历史记录.我看到一个名为FileHistory的类,我看到ConsoleReader类有一个名为setHistory()的方法,它接受FileHistory的一个实例.我希望调用该方法会导致它创建或加载并保存包含我的历史记录的文件.但事实并非如此.

不幸的是,文档几乎不存在.如何在下次运行启用JLine的程序时记住我在上一次运行中键入的命令?

更新

mirandes给出了正确答案.感谢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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读