java解析fdisk -l命令
来源:互联网 发布:百合小说 知乎 编辑:程序博客网 时间:2024/05/21 14:07
/**
* 执行命令fdisk -l 获得host上所有磁盘信息
*
* @author wj_j2ee
* @date 2012.11.6
* @param cmd
* @return rsInfo
* @throws IOException
*/
public static ArrayList<String> getAllHostDisks(String cmd) throws IOException {
Runtime runtime = Runtime.getRuntime();
Process p = runtime.exec(cmd);
BufferedReader resultBR = new BufferedReader(new InputStreamReader(p.getInputStream()));
ArrayList<String> rsInfo = new ArrayList<String>();
StringBuffer buffer = new StringBuffer();
String partitionIden = null;
while (true) {
String line = resultBR.readLine();
if (line == null) {
break;
} else {
String source = null;
String size = null;
String identifier = null;
if (line.indexOf("Disk ") != -1 && line.indexOf("bytes") != -1) {
source = line.substring(line.indexOf("/"), line.indexOf(":") + 1);
String sSize = line.substring(line.indexOf(",") + 2, line.indexOf(" bytes"));
size = new DecimalFormat("#0").format(Double.valueOf(sSize) / 1000 / 1000 / 1000);
} else if (line.indexOf("identifier") != -1) {
identifier = line.substring(line.lastIndexOf(" ") + 1);
} else if (line.indexOf("/") == 0 && line.indexOf("swap") == -1
&& line.indexOf("Extended") == -1) {
List<String> partition = new ArrayList<String>();
String[] str = line.split("\\s");
for (int i = 0; i < str.length; i++) {
if (str[i].length() > 0) {
int number = str[i].indexOf("+");
if (number != -1) {
str[i] = str[i].substring(0, number);
}
partition.add(str[i]);
}
}
buffer.append(partition.get(0));
buffer.append(":");
if ("*".equals(partition.get(1))) {
size = new DecimalFormat("#0").format(Double.valueOf(partition.get(4)) / 1000 / 1000);
} else {
size = new DecimalFormat("#0").format(Double.valueOf(partition.get(3)) / 1000 / 1000);
}
if (size == null || size.length() < 1) {
buffer.append(0);
} else {
buffer.append(size);
}
buffer.append(" G:");
if ("*".equals(partition.get(1))) {
buffer.append(partitionIden).append("_").append(partition.get(3));
} else {
buffer.append(partitionIden).append("_").append(partition.get(2));
}
rsInfo.add(buffer.toString());
buffer = new StringBuffer();
}
if (source != null) {
buffer.append(source);
buffer.append(size);
buffer.append(" G:");
partitionIden = null;
}
if (identifier != null) {
partitionIden = identifier;
buffer.append(identifier);
rsInfo.add(buffer.toString());
buffer = new StringBuffer();
}
}
}
if (p != null) {
p.destroy();
}
if (resultBR != null) {
try {
resultBR.close();
} catch (Exception e) {
}
}
return rsInfo;
}
- java解析fdisk -l命令
- Linux之fdisk -l命令
- Linux之fdisk -l命令
- fdisk -l
- fdisk -l
- fdisk -l /dev/sdb5
- fdisk -l Command
- fdisk -l 显示
- fdisk -l详解
- fdisk -l 详细说明
- fdisk -l文件详解
- fdisk 命令
- fdisk命令
- java命令-jps -l
- Nov/26 fdisk -l information
- df -Th and fdisk -l
- fdisk -l显示信息详解
- fdisk -l显示信息详解
- 程序人生--2009年(51)
- 危机时刻看到社交媒介的重要性
- 大学十年(一个程序员的路程)
- 2013第八周上机任务【项目2-Time类中的运算符重载】
- X86 CPU First instruction Executed
- java解析fdisk -l命令
- 手机厂商患上"安卓依赖症" 或将受制于谷歌
- C + API 贪吃蛇程序
- java中static作用详解(版本二)
- 静态链接库和动态链接库相同函数覆盖及库调用顺序
- 2.7 枚举
- JavaCV0.5+opencv2.4.5+eclipse 64位 环境搭建
- 获取鼠标的绝对位置
- tsar --系统监测工具