【问题标题】:Weird output from Android TextViewAndroid TextView 的奇怪输出
【发布时间】:2013-11-29 09:25:55
【问题描述】:

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

【问题讨论】:

  • 您正在尝试将文本设置为“BufferedReader”,它将调用 toString() 方法并为您提供当前输出。
  • 你需要做的是使用 BufferedReader 对象并从中读取数据并显示出来。

标签: java android process output bufferedreader


【解决方案1】:

您需要从BufferedReader 读取string

   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()); 

【讨论】:

    【解决方案2】:

    您得到的“奇怪”输出是in 的目标代码。您可能希望在 setText() 方法中使用 in.read()

    【讨论】:

      【解决方案3】:

      是的,这就是你会得到的,你正在尝试打印bufferedreader尝试bufferedreader.readline()

      【讨论】:

        【解决方案4】:

        试试这个:

        txtView.setText("output:\n"+org.apache.commons.io.IOUtils.toString(total);

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-02
          • 2021-12-03
          • 2015-02-18
          • 2011-06-14
          • 2013-06-04
          相关资源
          最近更新 更多