我正在尝试从我的Android应用程序运行ping命令并在TextView中查看输出,但结果是一些gobbledygook。
这是我的输出:
java.io.BufferedReader@4144f2d0
这是我的代码:
try {
Process process = Runtime.getRuntime().exec("ping -c 5 192.168.1.2");
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
txtview=(TextView)findViewById(R.id.textView);
txtview.setText("output:\n"+in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:3)
您需要阅读string
BufferedReader
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder total = new StringBuilder();
String line;
while ((line = in .readLine()) != null) {
total.append(line);
}
txtview=(TextView)findViewById(R.id.textView);
txtview.setText("output:\n"+total.toString());
答案 1 :(得分:0)
您获得的“怪异”输出是in
的目标代码。您可能希望在in.read()
方法中使用setText()
。
答案 2 :(得分:0)
是的,那就是你会得到的,你正在尝试打印bufferedreader
试试bufferedreader.readline()
答案 3 :(得分:0)
试试这个:
txtView.setText("output:\n"+org.apache.commons.io.IOUtils.toString(total);