System类的作用详解

来源:互联网 发布:淘宝网店成功案例 编辑:程序博客网 时间:2024/06/04 01:38
1) 输入输出流
System.out(标准终端输出流)
System.err(标准错误输出流)
System.in(标准输入流)
我们可以重定向这些流,比如可以把System.out的输出重定向到一文件中去
System.setOut(PrintStream) 标准输出重定向
System.setErr(PrintStream) 标准错误输出重定向
System.setIn(InputStream)  标准输入重定向
例如下:
/* ByteArrayOutputStream是用来缓存数据的(数据写入的目标(output stream原义)),
 * 向它的内部缓冲区写入数据,缓冲区自动增长,当写入完成时可以从中提取数据。
 * 由于这个原因,ByteArrayOutputStream常用于存储数据以用于一次写入*/
ByteArrayOutputStream bos = new ByteArrayOutputStream();
FileWriter fw = new FileWriter( new File( "e:/log.txt"), true);
System.setOut (new PrintStream(bos));
//写各种操作/输出等,这些print会暂时保存在ByteArrayOutputStream的数组中
System.out.println("first insert");
System.out.println("second insert");
//最后把ByteArrayOutputStream数组中的数据append到文件中
fw.append(bos.toString());
fw.close();
2) 取当前时间
System.currentTimeMillis()  返回 long型值。这个值可以转换至Date或Timestamp值。 它一般还可以用来计算程序执行的时间.例如下:
Long t1 = System.currentTimeMillis ();
Thread.sleep (10);
Long t2 = System.currentTimeMillis ();
System.out.println(t2 - t1);
// 此处打印10
3) 数组拷贝
System.arraycopy(Object src, int src_position, Object dst, int dst_position, int length)
利用System.arraycopy进行数组的拷贝效率是最高的,一般情况下我们自己很少直接用到这个方法,但在集合类的内部中都大量使用了这个方法。例如下:
int[] array1 = { 1, 2, 3, 4, 5 };
int[] array2 = { 4, 5, 6, 7, 8 };
int[] array3 = new int[8];
System.arraycopy (array1, 0, array3, 0, 5);
System.arraycopy (array2, 2, array3, 5, 3);
// 此时array3 = {1, 2, 3, 4, 5, 6, 7, 8}
4)存取系统的Properties
System.getProperties():取得当前所有的Properties,例如下:
System.out.println(System.getProperty ("java.version" ));
//Java运行环境版本:[1.6.0_13]
System.out.println(System.getProperty ("java.home" ));
//Java主目录:[D:\Program Files\myeclipse10.0\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre]
System.out.println(System.getProperty ("file.separator" ));//文件分隔符:[\]
System.out.println(System.getProperty ("path.separator" ));//路径分隔符:[;]
System.out.println(System.getProperty ("user.name" ));//用户名:[Administrator]
System.out.println(System.getProperty ("user.dir" ));//用户当前工作目录:[D:\MyEclipse 10\ javatest]
5)Library
System.loadLibrary(String libname) 加载native的动态库。 可以用CJNI的库, 然后在java中通过native方法来调用。
6)SecurityManager
System.setSecurityManager(SecurityManager s)和System.getSecurityManager():设置与取得系统的security class

---------------------------------------------------------------------------------------------------------------
现在发送在CSDN上的文章都能在手机端查看啦,走路上班、闲暇之余可以看看手机,共勉共进!



原创粉丝点击