一、System类
- System是final类
- 构造函数是私有的,不能被实例化。
- 类中的方法和属性都是静态的。
- 在 System 类提供的设施中,有标准输入、标准输出和错误输出流;
- 对外部定义的属性和环境变量的访问;
- 加载文件和库的方法;
- 还有快速复制数组的一部分的实用方法。
二、常用属性和方法
public final class System {
/* First thing---register the natives */
private static native void registerNatives();
static {
registerNatives();
}
/** Don't let anyone instantiate this class */
private System() {
}
//字段********************************************************
//“标准”输入流。此流已打开并准备提供输入数据。默认设备是键盘
public final static InputStream in = nullInputStream();
//“标准”输出流。此流已打开并准备接受输出数据。默认设备是dos窗口
public final static PrintStream out = nullPrintStream();
//“标准”错误输出流。此流已打开并准备接受输出数据。
public final static PrintStream err = nullPrintStream();
//方法************************************************************
//终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止
public static void exit(int status){}
//运行垃圾回收器
public static void gc(){}
//返回一个不能修改的当前系统环境的字符串映射视图
public static Map<String,String> getenv(){}
//获取指定的环境变量值。环境变量是一个取决于系统的外部指定的值,操作系统环境,比如环境变量path等
public static String getenv(String name){}
//确定当前的系统属性。jvm环境
public static Properties getProperties(){}
//获取指定键指示的系统属性。
public static String getProperty(String key){}
//将系统属性设置为 Properties 参数。
public static void setProperties(Properties props){}
//设置指定键指示的系统属性。
public static String setProperty(String key,
String value){}
//重新分配“标准”错误输出流。
public static void setErr(PrintStream err){}
//重新分配“标准”输入流
public static void setIn(InputStream in){}
//重新分配“标准”输出流。
public static void setOut(PrintStream out){}
}
三、java.util.Properties类
- Properties 类表示了一个持久的属性集。
- 一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。
- Properties 可保存在流中或从流中加载。
- 属性列表中每个键及其对应值都是一个字符串。
- 因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法。
- 但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项。
- 相反,应该使用 setProperty 方法。
- 如果在“不安全”的 Properties 对象(即包含非 String 的键或值)上调用 store,list,propertyNames方法,则该调用将失败。
public class Properties extends Hashtable<Object,Object>
{
//字段****************************************
//一个属性列表,包含属性列表中所有未找到值的键的默认值
protected Properties defaults;
//构造方法****************************************
//创建一个无默认值的空属性列表。
public Properties(){}
//创建一个带有指定默认值的空属性列表。
public Properties(Properties defaults){}
//常用方法****************************************
//用指定的键在此属性列表中搜索属性,如果未找到属性,则此方法返回 null。
public String getProperty(String key){}
//用指定的键在属性列表中搜索属性,如果未找到属性,则此方法返回默认值变量
public String getProperty(String key,
String defaultValue){}
//将属性列表输出到指定的输出流。
public void list(PrintStream out){}
public void list(PrintWriter out){}
/**
*从输入流中读取属性列表(键和元素对)。
*输入流按 load(Reader) 中所指定的、简单的面向行的格式,
*并假定使用 ISO 8859-1 字符编码;所以汉字会出现乱码
*/
public void load(InputStream inStream)
throws IOException{}
public void load(Reader reader)
throws IOException{}
//将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。
public void loadFromXML(InputStream in)
throws IOException,
InvalidPropertiesFormatException{}
//返回属性列表中所有键的枚举,如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键。
public Enumeration<?> propertyNames(){}
//调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果
public Object setProperty(String key,
String value){}
//以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流
public void store(OutputStream out,
String comments)
throws IOException{}
//以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符
public void store(Writer writer,
String comments)
throws IOException{}
//发出一个表示此表中包含的所有属性的 XML 文档。comment是注释
public void storeToXML(OutputStream os,
String comment)
throws IOException{}
//使用指定的编码发出一个表示此表中包含的所有属性的 XML 文档
public void storeToXML(OutputStream os,
String comment,
String encoding)
throws IOException{}
/**
*返回此属性列表中的键集,
*其中该键及其对应值是字符串,
*如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。
*其键或值不是 String 类型的属性被忽略。
*/
public Set<String> stringPropertyNames(){}
//其他方法继承自HashTable和Object
}