Java 运行命令并将输出放入TextView?

Java 运行命令并将输出放入TextView?,java,android,eclipse,Java,Android,Eclipse,基本上,我正在编写一个应用程序,并试图对文件执行cat。我有一个非常基本的UI,它由一个按钮和一个文本视图组成。当我点击该按钮时,我想执行命令并在屏幕上显示输出(我相信TextView是最好的方法?)。我知道如何使它显示一组文本,但我需要它显示我正在运行的caton上的文本。提前谢谢 编辑:代码是 package com.android.test; import java.io.BufferedReader; import java.io.IOException; import java.io

基本上,我正在编写一个应用程序,并试图对文件执行
cat
。我有一个非常基本的UI,它由一个按钮和一个文本视图组成。当我点击该按钮时,我想执行命令并在屏幕上显示输出(我相信TextView是最好的方法?)。我知道如何使它显示一组文本,但我需要它显示我正在运行的
cat
on上的文本。提前谢谢

编辑:代码是

package com.android.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class Root3Activity extends Activity {
    /** Called when the activity is first created. */

  Button getVoltagesButton;
  TextView voltages;

  protected static final String get_voltages = "cat /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels_havs";

  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      String currentVoltages = null;

      getVoltagesButton = (Button)findViewById(R.id.button1);
      getVoltagesButton.setOnClickListener(VoltageListener);
      voltages = (TextView)findViewById(R.id.textView1);

  }

  private OnClickListener VoltageListener = new OnClickListener()
  {
    public void onClick (View v) {
      try {
        Runtime.getRuntime().exec(get_voltages);
        //what goes here??
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
  };
}
用于运行
cat
exec()
方法返回一个对象。流程对象有一个名为的方法。我想你可以用它来获得一个输入流,你可以用它来获得标准输出。由此,您可以将从输入流读取的值写入文本视图

private static final String get_voltages = "/sys/devices/system/cpu/cpu0/cpufreq/vdd_levels_havs";

private final String getCurrentValue() throws IOException{
File yourFile = new File(get_voltages);
BufferedReader br = new BufferedReader(new FileReader(yourFile));
String line, vm = "";

while ((line = br.readLine()) != null) {
    vm = line;
    break;
}
return vm;
}

这将读取文件,在本例中返回最后一行。如果文件有多行,可以使用StringBuilder sB。然后在while循环中,您可以使用sb.append(line);然后使用返回键将其设置为textview。另外,我在XDA上向您发送了一条关于帮助您完成此项目的私人消息,但由于某些原因,它无法通过。爱你HTC Evo的脚本如果可以的话,我会帮你的。

你能发布你的跑步猫代码吗?它已经启动了,但它的格式很奇怪。对不起,如果我把代码改成这个<代码>进程p=Runtime.getRuntime().exec(get_);DataOutputStream os=新的DataOutputStream(p.getOutputStream())我知道我走的是正确的道路,我只是不知道如何将此信息发送到TextView(不想使用Toast,因为此信息需要保留在屏幕上)。知道吗?请注意,SDK中没有shell命令。您应该使用标准的JavaIOAPI来读取文件。这将比执行子命令更有效。不幸的是,这对我来说仍然不起作用。我确实收到了你的PM,我回答道。只要给我发一封电子邮件,如果XDA是哑巴,点击我的名字在这里,我的电子邮件被列出。再次感谢!