2013-07-21 67 views
-1
public class GetProp extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     String file_proc = readFile(); 
     TextView tv = (TextView)findViewById(R.id.tv); 
     tv.setText("Read File contents from SDCARD : \n" + file_proc); 
    } 
    public String readFile(){ 
     BufferedReader rdr; 
     String proc = ""; 
     String line; 
     int lineNumber = 0; 
     try { 
      rdr = new BufferedReader(new FileReader("/proc/cpuinfo"));  
      while ((line = rdr.readLine()) != null) { 
       lineNumber++; 
      Matcher matcher = Pattern.compile("Processor: (.*)").matcher(line); 
      if (matcher.find()) { 
       proc = matcher.group(1); 
      } 
      }   
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return proc;   
    } 
} 

我想打印从/ proc内/ cpuinfo txt文件的一行,像处理器: “RESULT”,其中结果是matcher.group(1)。但是我没有结果,我的问题在哪里?matcher.group(1)返回任何结果

+0

那么,使用'group(1)'将是一个开始。 –

+0

您可能未找到任何匹配项。检查输入。 – Keppil

回答

2

这是我/proc/cpuinfo是什么样子:

processor : 0 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 42 
/* etc */ 

有两个问题与您正则表达式:

  1. 正则表达式是区分大小写的。将其更改为processor,或使用Pattern.compile(..., Pattern.CASE_INSENSITIVE)
  2. processor和冒号之间有空格。你应该改变你的正则表达式为processor\\s*: (.*)
+0

第二点是工作,thx) – user1835337