在Android中解析ls 命令得到目录列表的方法
在android中我们可以通过
Process process=Runtime.getRuntime().exec("ls -l /sdcard/dcim/camera");执行linux下的命令
InputStream in=process.getInputStream();得到命令执行结果的二进制流
ls -l xxxx命令的执行结果一般格式为:
drwxr-xr-x 2 root root 4096 04-27 11:44 eclipse
drwxrwxrwx 2 root root 4096 04-20 21:22 myfolder
drwxr-xr-x 2 root root 4096 04-27 12:58 sdk
-rw-r--r-- 1 root root 82 04-22 15:37 setting.conf
drwxrwxrwx 2 root root 4096 04-20 21:22 tmp
drwxrwxrwx 2 root root 4096 04-21 14:58 tool
-rwxr--r-- 1 Onglu Onglu 544256 04-22 14:05 yoyoplayer for Android 1.5.doc
现在的需求是从上面的执行结果中得到每个项纵向排列的值:
方法:如:String str="drwxrwxrwx 2 root root 4096 04-20 21:22 myfolder"
由于空格数不确定,采用String[] array=str.split(" ");//根据单个空格符分割,一般都会出问题
完整解决方案:
1,按照空格分割字符串,多个空格作为一个空格对字符串进行分割,这里需要用到正则表达式
String[] array=str.split("\\s{1,}")
2,将字符串中的多个空格替换为一个空格,然后根据空格获得数组
String [] array=str.replace("{2,}", " ").split(" ")
更多相关文章
- Android(安卓)技术专题系列之五 -- 本地化
- android工程字符串多语言翻译遗漏查找工具
- Android(安卓)本地代码中的LIKELY和UNLIKELY宏
- 如果获取android源码
- Android系统启动执行jar程序
- Android应用程序执行流程
- Android中String的处理
- 修改Android中strings.xml文件
- Android(安卓)中onSaveInstanceState()解析