2013-07-21 97 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