В настоящее время я написал небольшой CLI для школьного проекта, который намеревается представить Socket Programming и Multi-Threading Programming. Мы в основном реализуем тип протокола передачи файлов. В настоящее время у меня есть несколько проблем с форматированием CLI. Поскольку программа имеет многопоточный характер, иногда требуются входные данные, а затем отображаются выходные данные. Это делает общее взаимодействие между пользователем и интерфейсом командной строки неудобным, поскольку теперь пользователи должны вводить данные после того, как произошли выходные данные.
Мне было интересно, есть ли способ со стандартным Java I / O, чтобы вход всегда оставался в нижней части CLI, даже когда поступают новые сообщения.
Для Например, выходные данные в настоящее время выглядят примерно так:
Connected to 127.0.0.1:5000 and 127.0.0.1:5001
mytftp> pwd
/Users/Shawn/Desktop/Computer Science/CSCI4780 Distributed Systems/Project2/server
mytftp> pwd &
mytftp>
/Users/Shawn/Desktop/Computer Science/CSCI4780 Distributed Systems/Project2/server
ls
.DS_Store
sdf
clientFile.txt
mytftp>
Но я ожидаю что-то вроде этого:
Connected to 127.0.0.1:5000 and 127.0.0.1:5001
mytftp> pwd
/Users/Shawn/Desktop/Computer Science/CSCI4780 Distributed Systems/Project2/server
mytftp> pwd &
/Users/Shawn/Desktop/Computer Science/CSCI4780 Distributed Systems/Project2/server
mytftp> ls
.DS_Store
sdf
clientFile.txt
mytftp>
Примечание: "&" здесь означает "выполнить эту команду на отдельная тема ". Вот почему во время следующего выполнения сначала отображается приглашение «mytftp>», а затем отображаются результаты потока. Я бы хотел, чтобы текущая подсказка всегда оставалась на дне. Примечание: команда & on pwd не добавлена для повышения производительности. Обычно он используется только для команд выгрузки и загрузки файлов, но здесь он используется в качестве примера.
Я не уверен, возможно ли это, но альтернативы будут приветствоваться.
Просто повторюсь, поток хотел бы :
Connection Established:
Подключен к 127.0.0.1:5000 и 127.0.0.1:5001
Command is entered into new thread
: mytftp> pwd &
Next prompt is shown ready for a new command
: mytftp>
Как только появятся результаты для pwd &
, я бы хотел, чтобы приглашение было сброшено:
Connection Established:
Подключено к 127.0.0.1:5000 и 127.0.0.1 : 5001
Command is entered into new thread
: mytftp> pwd &
Space was made for the prompt and results shown
: / Users / Shawn / Desktop / Computer Science / CSCI4780 Распределенные системы / Project2 / server
Next prompt is shown ready for a new command
: mytftp>