Java 我如何获得';输入提示';从sshj输入流读取时?

Java 我如何获得';输入提示';从sshj输入流读取时?,java,android,sshj,Java,Android,Sshj,我正在尝试使用sshj为android编写一个ssh应用程序。我可以连接到服务器并从inputstream读取数据,而不会出现问题,例如: Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0.29-generic x86_64) Documentation: https://help.ubuntu.com/ Last login: date time from user` 通常情况下,我希望以user@host:~$现在,将inputstream放

我正在尝试使用sshj为android编写一个ssh应用程序。我可以连接到服务器并从inputstream读取数据,而不会出现问题,例如:

Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0.29-generic x86_64)

Documentation: https://help.ubuntu.com/

Last login: date time from user`
通常情况下,我希望以user@host:~$现在,将inputstream放在此处结束。我能够毫无问题地写入shell并执行命令,但我真的很担心没有得到输入提示,因为知道何时写入outputstream以及正确的格式是很有帮助的。 执行命令时,提示符会写入inputstream,如下所示:

"executed command"

user@host:~$ "executed command"

"result"`
我尝试使用readline()和read()读取,并检查流是否有任何可读取的数据


是否有任何方法可以在不执行命令的情况下从inputstream接收提示?

可以通过使用StreamCopier(如“基本pty”示例所示)并将系统重定向到PrintStream来避免此问题:

    baos = new ByteArrayOutputStream();
    ps= new PrintStream(baos);
    System.setOut(ps);
    new StreamCopier (shell.getInputStream(),System.out).bufSize(shell.getLocalMaxPacketSize()).spawn("stdout");
    textView.setText(baos.toString("UTF8"));
这个解决方案肯定不是完美的,但它是有效的。我仍然欢迎关于如何做得更好的建议