我想使用android执行'top -n 1'命令,并将top命令的输出存储在我设备内部存储器的文件中,如果可能的话。否则该文件应存储在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 :(得分: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不支持“top”,可能是你需要应用完整路径(在我的ubuntu / usr / bin / top上)
当您需要将输出放入文件时,请将阅读器的内容放入该文件中。 “>” 中是shell的一个特性,而不是exec的特性