1. 程式人生 > >System類的作用詳解

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的動態庫。可以用CJNI的庫,然後在java中通過native方法來呼叫。 6)SecurityManager
System.setSecurityManager(SecurityManager s)和System.getSecurityManager():設定與取得系統的security class --------------------------------------------------------------------------------------------------------------- 現在傳送在CSDN上的文章都能在手機端檢視啦,走路上班、閒暇之餘可以看看手機,共勉共進!