问题描述
我正在使用JSch SSH到Linux服务器并运行自定义实用程序并检查Java代码中的响应。我看到一些随机字符作为回应。签入腻子时看起来也一样。
private String logResponse(Channel channel,InputStream in) throws IOException {
byte[] tmp = new byte[1024];
while (true) {
while (in.available() > 0) {
int i = in.read(tmp,1024);
if (i < 0)
break;
return new String(tmp,i);
}
if (channel.isClosed()) {
break;
}
}
return "";
}
如果在后续方法中使用或打印在文件中,它将显示不同的随机字符。
可能是由于编码造成的吗?请建议是否可以调整以上方法。非常感谢。
解决方法
我正在使用exec通道,并且也有提示。添加了一个正则表达式来替换转义码,现在可以读取了。
text.replaceAll("(\\x9B|\\x1B\\[)[0-?]*[ -\\/]*[@-~]","");