java 获取电脑 硬盘内存数据


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"));
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值