2017-08-08 128 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