System类的作用详解

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 的动态库。   可以用 C JNI 的库,   然后在 java 中通过 native 方法来调用。
6)SecurityManager
System.setSecurityManager(SecurityManager s)和System.getSecurityManager(): 设置与取得系统的 security class

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



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值