Properties
命令行输入的都是字符串类型。
如果命令行没有输入参数,依然会创建String[]对象,只不过是空数组对象。
Properties类,标准类库的类
Java.util.Properties
数据结构:其实是个Map,但是是一个特殊的Map
key,value都是String类型
创建对象:
Properties p = new Properties();
p.setProperties(“name”,”Tom”); 设置属性
Properties文件
三种方法: = 冒号 空格,来区分名和值。
如果都存在,以第一个为主。
Properties对象可以直接把数据放入Properties文件,或得到Properties文件的数据。
Properties文件
优点:
(1)可移植,任何平台,
(2)效率高:Properties对象和Properties文件可以直接进行操作,数据结构一样。
(3)安全:
以ReadPro.java为例:
..\表示当前路径:可移植性好
(1)静态全局变量:Properties类型
(2)静态初始化块:为静态全局变量的初始化。为静态全局变量赋予一个Properties对象(创建)。创建一个文件字节输入流对象,把Properties文件与Properties对象建立关联(load方法)。
(3)FileOutputStream文件字节输出流:文件如果存在,则会自动删除重建;如果不存在,则会自动新建。
环境变量的收集
Properties props = System.getProperties();
自动创建一个Properties对象,之后把环境变量中所有的属性放入到该对象中。
输出环境变量的所有的元素
方法一:
Enumeration prop_names = props.propertyNames();
While(prop_names.hasMoreElements()){
Props.getProperties();
}
方法二:
Props.list(System.out);
Enumeration 类
只能存放对象的地址。不能存放基本类型。
从Enumeration中拿去的都是Object类型。
可以自行迭代。
Iterator 也可以自行迭代。
只有Enumeration,Iterator两个集合类可以自行迭代,其他的集合类不可以,只能依靠Iterator类,进行迭代。
Iterator 效率高,不安全
流
传送数据的管道
在一调用主方法,创建了System.out, System.error 执行文件
标准字节流
System.out PrintStream对象,标准字节输出流对象
System.in InputStream对象,标准字节输入流对象
System.err PrintStream对象
字节—>字符—>缓冲流(buffer)
InputStreamReader
一次读取两个字节(一个汉字)
一个字符两个字节
BufferedReader
一次读取一行字符 (碰到换行符停止读取)
标准设备输出
System.out.println();
System.out.print();
没有重写toString方法的类,如果是基本类型,就输入数值,如果是引用类型,就输出对象的地址。
重写toString方法的类,String,Integer,集合类,
Math类
java.lang包下
不能被继承,final
不能创建对象,构造方法是私有的
对外提供方法都是静态的
静态常量:E PI ( public final static )
Math.random();
随机数更均匀
Random r =new Random();
//0到100的整数
r.nextInt(100);