来自Android TextView的奇怪输出

时间:2013-11-29 09:25:56

标签: java android process output bufferedreader

我正在尝试从我的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();
    }

4 个答案:

答案 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);