Environment 类

1、讲述 Environment 类 
Environment 是一个提供访问环境变量的类。 
Environment 包含常量: 
MEDIA_BAD_REMOVAL 
解释:返回getExternalStorageState() ,表明SDCard 被卸载前己被移除 
MEDIA_CHECKING 
解释:返回getExternalStorageState() ,表明对象正在磁盘检查。 
MEDIA_MOUNTED 
解释:返回getExternalStorageState() ,表明对象是否存在并具有读/写权限 
MEDIA_MOUNTED_READ_ONLY 
解释:返回getExternalStorageState() ,表明对象权限为只读 
MEDIA_NOFS 
解释:返回getExternalStorageState() ,表明对象为空白或正在使用不受支持的文件系统。 
MEDIA_REMOVED 
解释:返回getExternalStorageState() ,如果不存在 SDCard 返回 
MEDIA_SHARED 
解释:返回getExternalStorageState() ,如果 SDCard 未安装 ,并通过 USB 大容量存储共享 返回 
MEDIA_UNMOUNTABLE 
解释:返回getExternalStorageState() ,返回 SDCard 不可被安装 如果 SDCard 是存在但不可以被安装 
MEDIA_UNMOUNTED 
解释:返回getExternalStorageState() ,返回 SDCard 已卸掉如果 SDCard   是存在但是没有被安装 
Environment 常用方法: 
方法:getDataDirectory() 
解释:返回 File ,获取 Android 数据目录。 
方法:getDownloadCacheDirectory() 
解释:返回 File ,获取 Android 下载/缓存内容目录。 
方法:getExternalStorageDirectory() 
解释:返回 File ,获取外部存储目录即 SDCard 
方法:getExternalStoragePublicDirectory(String type) 
解释:返回 File ,取一个高端的公用的外部存储器目录来摆放某些类型的文件 
方法:getExternalStorageState() 
解释:返回 File ,获取外部存储设备的当前状态 
方法:getRootDirectory() 

解释:返回 File ,获取 Android 的根目录 

2、讲述 StatFs 类 
StatFs 一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况 
StatFs 常用方法: 
getAvailableBlocks() 
解释:返回 Int ,获取当前可用的存储空间 
getBlockCount() 
解释:返回 Int ,获取该区域可用的文件系统数 
getBlockSize() 
解释:返回 Int ,大小,以字节为单位,一个文件系统 
getFreeBlocks() 
解释:返回 Int ,该块区域剩余的空间 
restat(String path) 
解释:执行一个由该对象所引用的文件系统 

### Java中Environment的使用说明与示例代码 在Java中,`Environment`并非标准库的一部分,而是通常出现在特定框架或工具中。例如,在Spring框架中,`Environment`抽象了应用程序的环境信息,包括配置文件、属性值以及运行时环境(如开发、测试或生产环境)。以下是对`Environment`的详细说明和用法[^6]。 #### 1. Spring Framework中的Environment Spring框架提供了`Environment`接口,用于管理应用程序的配置和环境信息。它主要通过`ConfigurableEnvironment`实现来操作属性源(PropertySources)。以下是其核心功能: - 获取系统属性和环境变量。 - 管理激活的配置文件(Profiles)。 - 解析占位符(Placeholder)。 ##### 示例代码:获取系统属性 ```java import org.springframework.core.env.Environment; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class EnvironmentExample { public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); Environment env = context.getEnvironment(); // 获取系统属性 String osName = env.getProperty("os.name"); System.out.println("Operating System: " + osName); // 获取环境变量 String path = env.getProperty("PATH"); System.out.println("Path Variable: " + path); context.close(); } } ``` ##### 示例代码:使用配置文件 假设有一个`application.properties`文件,内容如下: ``` app.name=MyApp app.version=1.0.0 ``` 可以通过`Environment`接口读取这些属性: ```java import org.springframework.core.env.Environment; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class PropertyExample { public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); Environment env = context.getEnvironment(); // 从配置文件中读取属性 String appName = env.getProperty("app.name"); String appVersion = env.getProperty("app.version"); System.out.println("Application Name: " + appName); System.out.println("Application Version: " + appVersion); context.close(); } } ``` #### 2. 非Spring场景下的Environment替代方案 如果不在Spring环境中,可以使用`System.getenv()`或`System.getProperties()`来访问环境变量和系统属性[^7]。 ##### 示例代码:访问环境变量 ```java public class SystemEnvExample { public static void main(String[] args) { // 获取所有环境变量 for (String name : System.getenv().keySet()) { System.out.println(name + ": " + System.getenv(name)); } // 获取特定环境变量 String homeDir = System.getenv("USERPROFILE"); // Windows 或 "HOME" 在 Linux/Mac System.out.println("User Home Directory: " + homeDir); } } ``` ##### 示例代码:访问系统属性 ```java public class SystemPropertiesExample { public static void main(String[] args) { // 获取所有系统属性 for (String prop : System.getProperties().stringPropertyNames()) { System.out.println(prop + ": " + System.getProperty(prop)); } // 获取特定系统属性 String javaVersion = System.getProperty("java.version"); String osName = System.getProperty("os.name"); System.out.println("Java Version: " + javaVersion); System.out.println("OS Name: " + osName); } } ``` #### 3. 注意事项 - `Environment`仅在Spring框架中有明确定义。如果未使用Spring框架,则需要依赖其他方式(如`System.getenv()`或`System.getProperties()`)来访问环境信息。 - 在实际项目中,建议将敏感信息(如数据库密码)存储在配置文件或环境变量中,并通过`Environment`接口安全地访问这些值[^8]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值