2017-08-08 202 views
0

文件我想使用機器人在一個文件中的內部存儲在我的設備,如果有可能執行「頂部-n 1」命令並存儲頂部命令的輸出執行Linux命令和存儲輸出。否則,文件應存儲在SD卡中。我使用下面的代碼來實現它。在機器人

File logFile = new File(getFilesDir().getAbsolutePath()+File.separator+"logtex.txt"); 
      if(!logFile.exists()) 
      { 
       logFile.createNewFile(); 
      } 

      logFile.setExecutable(true,false); 
      logFile.setReadable(true,false); 
      logFile.setWritable(true,false); 
      Log.e("executeToplog", "err in"); 
      Runtime.getRuntime().exec("top -n 1 > /data/user/0/com.example.abcdef.memcpuusage/files/logtex.txt "); 

但它似乎沒有工作。代碼應該做什麼修改?

+0

的'它似乎並沒有work'是無益的。你面臨的確切問題是什麼? – m0skit0

+0

運行該程序後,logtex.txt爲空。 – deepCode

+0

什麼是運行'頂-n 1'在外殼的輸出?請記住,大多數Linux命令要麼不存在,要麼完全在Android中破壞。 – m0skit0

回答

0

我不喜歡這個主意,以填補輸出的文件。我想嘗試以下

Process process = Runtime.getRuntime().exec ("top -1 1"); 
Reader reader = new InputStreamReader (process.getInputStream()); 

// simple approach, omit some checkings, not compiled or tested, so may still fail 
FileWriter writer = new FileWriter ("top.log"); 
for (int chr; (chr = reader.read()) != –1;) { 
    writer.append((char) chr); 
} 
writer.close() 

然而,這可能是因爲Android不支持「頂」,可能是你需要應用的完整路徑(在我的Ubuntu的/ usr/bin中/頂)

當你需要輸出到一個文件中,把讀者的內容放到這個文件。 「>」是外殼的功能,而不是EXEC