package com.tech30.common.utils;
import java.io.File;
import java.lang.management.ManagementFactory;
import java.util.Map;
import com.sun.management.OperatingSystemMXBean;
import java.util.HashMap;
public class ComputerUtil {
/**
* path 硬盘路径 linux 默认“/”
* HD_totalspace 硬盘总大小 单位byte
* HD_freeSpace 硬盘剩余空间 单位byte
* HD_usedSpace 硬盘使用空间 单位byte
*
* Memory_total 内存总大小
* Memory_free 内存剩余大小
*
* @param path
* @return
*/
public static Map systemInfo(String path) {
Map map=new HashMap();
File file=new File(path);
long HD_totalspace=file.getTotalSpace();
long HD_freeSpace=file.getFreeSpace();
long HD_usedSpace=HD_totalspace-HD_freeSpace;
//硬盘
map.put("HD_totalspace",filesize(HD_totalspace));
map.put("HD_freeSpace",filesize(HD_freeSpace));
map.put("HD_usedSpace",filesize(HD_usedSpace));
//内存
OperatingSystemMXBean osmb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
map.put("Memory_totalspace",osmb.getTotalPhysicalMemorySize()/ 1024/1024 + "MB");
map.put("Memory_freeSpace",osmb.getFreePhysicalMemorySize() / 1024/1024 + "MB");
map.put("Memory_usedSpace",(osmb.getTotalPhysicalMemorySize()-osmb.getFreePhysicalMemorySize()) / 1024/1024 + "MB");
return map;
}
//计算文件大小
public static String filesize(long number) {
String filesizeStr="";
double filesizeD=number;
if(filesizeD>(1000D*1000*1000*1000*1000*1000)){
filesizeD=filesizeD/1000/1000/1000/1000/1000;
filesizeStr=String.format("%.1f",filesizeD)+"PB";
}else if(filesizeD>(1000D*1000*1000*1000)){
filesizeD=filesizeD/1000/1000/1000/1000;
filesizeStr=String.format("%.1f",filesizeD)+"TB";
}else if(filesizeD>(1000D*1000*1000)){
filesizeD=filesizeD/1000/1000/1000;
filesizeStr=String.format("%.1f",filesizeD)+"GB";
}else if(filesizeD>(1000D*1000)){
filesizeD=filesizeD/1000/1000;
filesizeStr=String.format("%.1f",filesizeD)+"MB";
}else if(filesizeD>(1000D)){
filesizeD=filesizeD/1000;
filesizeStr=String.format("%.1f",filesizeD)+"KB";
}else if(filesizeD<1000D){
filesizeStr=String.format("%.1f",filesizeD)+"B";
}
return filesizeStr;
}
public static void main(String[] args) {
Map systeminfoMap=systemInfo("/");
System.err.println("硬盘总容量"+systeminfoMap.get("HD_totalspace"));
System.err.println("硬盘剩余容量"+systeminfoMap.get("HD_freeSpace"));
System.err.println("硬盘已使用容量"+systeminfoMap.get("HD_usedSpace"));
System.err.println("内存总大小"+systeminfoMap.get("Memory_totalspace"));
System.err.println("内存剩余大小"+systeminfoMap.get("Memory_freeSpace"));
System.err.println("内存已使用大小"+systeminfoMap.get("Memory_usedSpace"));
}
}
java 获取电脑 硬盘内存数据
最新推荐文章于 2021-10-26 16:24:31 发布