java语言获取系统硬盘容量和内存容量
使用到的方法
java.io.File
的三个方法如下:
public static File[] listRoots() : 获取系统盘符。
public long getTotalSpace() : 返回此抽象路径名指定的分区大小(以字节为单位)。
public long getUsableSpace() : 返回此抽象路径名指定的分区上可用于此虚拟机的字节数。
代码示例
import com.sun.management.OperatingSystemMXBean;
import java.io.File;
import java.io.IOException;
import java.lang.management.ManagementFactory;
import java.text.DecimalFormat;
/**
* @author layman
*/
public class Demo01 {
public static void main(String[] args) throws IOException {
getDiskInfo();
getMemoryInfo();
}
/**
* 获取系统各个硬盘的总容量、已经使用的容量、剩余容量和使用率
* @throws IOException
*/
public static void getDiskInfo() throws IOException {
DecimalFormat df = new DecimalFormat("#0.00");
File[] disks = File.listRoots();
for (File file : disks) {
// 获取盘符
System.out.print(file.getCanonicalPath() + " ");
// 获取总容量
long totalSpace = file.getTotalSpace();
// 获取剩余容量
long usableSpace = file.getUsableSpace();
// 获取已经使用的容量
long freeSpace = totalSpace - usableSpace;
// 获取使用率
float useRate = (float)((freeSpace * 1.0 / totalSpace) * 100);
System.out.print("总容量: " + transformation(totalSpace));
System.out.print("已经使用: " + transformation(freeSpace));
System.out.print("剩余容量: " + transformation(usableSpace));
System.out.println("使用率: " + Double.parseDouble(df.format(useRate)) + "% ");
}
}
/**
* 获取内存使用情况
*/
public static void getMemoryInfo() {
OperatingSystemMXBean mem = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
// 获取内存总容量
long totalMemorySize = mem.getTotalPhysicalMemorySize();
// 获取可用内存容量
long freeMemorySize = mem.getFreePhysicalMemorySize();
System.out.println("内存总容量:" + transformation(totalMemorySize) );
System.out.println("可用容量:" + transformation(freeMemorySize));
}
/**
* 将字节容量转化为GB
*/
public static String transformation(long size){
return size / 1024 / 1024 / 1024 + "GB"+" ";
}
}
运行结果:
C:\ 总容量: 100GB 已经使用: 28GB 剩余容量: 71GB 使用率: 28.48%
D:\ 总容量: 200GB 已经使用: 13GB 剩余容量: 186GB 使用率: 6.87%
E:\ 总容量: 200GB 已经使用: 9GB 剩余容量: 190GB 使用率: 4.57%
F:\ 总容量: 200GB 已经使用: 58GB 剩余容量: 141GB 使用率: 29.43%
G:\ 总容量: 231GB 已经使用: 17GB 剩余容量: 214GB 使用率: 7.38%
---------------------------------------------------
内存总容量:7GB
可用容量:4GB