Scala -jline файл завершает причины, файл не найден (linux)
Я вижу что-то очень странное в этом куске кода.
command match {
case "q" | "quit" => done=true
case "f" | "file" =>
{
// console_reader.addCompleter(fn_completer)
val f:String=console_reader.readLine("input filename >")
val filename=
if(java.nio.file.Paths.get(f).isAbsolute())
f
else
System.getProperty("user.dir")+"/"+f
val ft=Paths.get(filename).toString()
console_reader.println(ft)
if(Files.exists(Paths.get(filename)))
process_file(filename)
else
console_reader.println(filename+" does not exist")
// console_reader.removeCompleter(fn_completer)
}
case _ => console_reader.println(command+" not a command")
}
когда я запускаю и набираю build.sbt все нормально - вызывается process_file. Когда я раскомментирую строки, завершающие файл, сообщается, что тот же файл не существует. Что происходит?
1 ответ
Решение
Прочитав строку, поместите console_reader.println(":"+f+":")
и становится очевидным, что после завершителя и с использованием завершения табуляции к имени файла добавляется пробел.
Я изменил строку на val f=console_reader.readLine("input filename >").stripLineEnd.trim()
и это исправило вещи.