在开发android项目中,需要在程序中使用命令行执行,获得命令行执行后的结果并做处理。
下面是自己写的一个小例子,供以后参考使用:
public String android_command(){
//要执行的命令行
String ret = "cat /mnt/sdcard/readme.txt";
String con ="";
String result ="";
Process p;
try {
p = Runtime.getRuntime().exec(ret);
BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
while((result=br.readLine())!=null)
{
con+=result;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//可以打出命令执行的结果
System.out.println("==========================con:"+con);
ret = do_command(con);
System.out.println("==========================ret:"+ret);
return ret;
} //对结果进行处理,得到自己想要的数据
public String do_command(String cmd){
String ret = "";
//根据自己的需求,制定正则表达式
String match = "\\d+";
Pattern p = Pattern.compile(match);
Matcher m = p.matcher(cmd);
if(m.find()){
String arr = m.group(0);
String cmd2 = m.replaceFirst("@");
ret = arr +"@"+do_command(cmd2);
}
return ret;
}
关于java正则表达式的使用:
http://blog.csdn.net/mad1989/article/details/7773749
http://folksy.iteye.com/blog/1002076