Java基礎第十八天學習日記_Util包中一些有用的類、IO流

------- android培訓java培訓、期待與您交流! ----------

System:類中的方法和屬性都是靜態的。

常用方法:

out:標準輸出,默認是控制檯。

in:標準輸入,默認是鍵盤。

Properties  getProperties();獲取系統屬性信息。因爲Properties是Hashtable的子類,也就是Map集合的一個子類對象。那麼可以通過map的方法取出該集合中的元素。該集合中存儲的都是字符串。沒有泛型定義。

setProperties("mykey""myvalue");自定義一些特有的信息。

java -Dhaha=pppp SystemDemo在啓動JVM時,動態加載一些屬性信息。

import java.util.Properties;

public class SystemDemo
{
	/**
	 * @系統信息	 */
	public static void main(String[] args) 
	{
		Properties prop=System.getProperties();//獲取系統信息
		System.setProperty("mykey","myvalue");//設置自定義的系統信息
		String myvalue=prop.getProperty("mykey");//獲取特定的屬性信息
		System.out.println(myvalue);
		for(Object obj:prop.keySet())
		{
			String value=(String)prop.get(obj);
			System.out.println(obj+","+value);
		}
	}
}

 Runtime對象:每個Java應用程序都有一個Runtime類實例,使應用程序能夠與其運行的環境相連接。可以通過getRuntime方法獲取當前運行時。該類並沒有提供構造函數。說明不可以new對象。那麼會直接想到該類中的方法都是靜態的。發現該類中還有非靜態方法。說明該類肯定會提供了方法獲取本類對象。而且該方法是靜態的,並返回值類型是本類類型。由這個特點可以看出該類使用了單例設計模式完成。

如:Runtime r = Runtime.getRuntime();

Process p = r.exec("winmine.exe");//在引號中可以添加一個文件名,表示由前面的程序執行後面的文件。

P.destroy();//銷燬線程。

Date類:

創建新的date對象:Date d = new Date ();

封裝日期模式:SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日E  hh:mm:ss")

調用format方法讓模式格式化指定Date對象:String time = sdf.format(d);

如果要獲取單獨的年月日,可以通過查表法獲取。

Calendar類自定義時間:

Calendar c = Calendar.getInstance();

C.set(2012,02,23);//設置年月日。

向前後推算日期:c.add(Calendar.DAY_OF_MONTH,-18);//負數表示向以前推算,正數表示向以後推算。

import java.util.Calendar;

public class DateDemo2
{
	/**
	 * 單獨獲取時間中的某一項
	 */
	public static void main(String[] args) 
	{
		Calendar cal=Calendar.getInstance();
		cal.set(2012,07,27);//設置的時間不能超過當前時間。
		cal.add(Calendar.MONTH, 1);//將某一項屬性向前或向後推指定的量。
		//MONTH指示月份的 get 和 set 的字段數字。	這是一個特定與日曆的值。一月對應爲0;
		String[] mons={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
		//星期天爲1,爲開始。
		String[] weeks={"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
		System.out.print(cal.get(Calendar.YEAR)+"年");
		System.out.print(mons[cal.get(Calendar.MONTH)]);
		System.out.print(cal.get(Calendar.DAY_OF_MONTH)+"日");
		System.out.print(weeks[cal.get(Calendar.DAY_OF_WEEK)]);
	}
}

Math接口:

常用方法:

ceil(16.34);//返回大於指定數據的最小整數。

floor (12.34);//小於指定數據的最大整數。

round(12.54);//四捨五入

獲取隨即0-10整數:int d = (int)(Math.random()*10+1);

方法二:Random r = new Random();

Int d = r.nextInt(10)+1;

IO流:

IO流用來處理設備之間的數據傳輸。

Java對數據的操作是通過流的方式。

Java用於操作流的對象都在IO包中。

流按照操作數據分爲兩種:字節流與字符流。

流按照流向分爲:輸出流,輸入流。

字節流的抽象基類:InputStream,OutputStream

字符流的抽象基類:Reader,Writer。

這四個基類派生出來的子類名稱都是以其父類名作爲子類名的後綴。前綴名一般都是該流對象的功能。

FileWriter類:該類主要是操作文件的。

一般流程:

1.創建一個FileWriter對象。該對象一被初始化就必須要明確被操作的文件。而且該文件會被創建到指定目錄下。如果該目錄下已有同名文件,將被覆蓋。FileWriter fw = new FileWriter("demo.txt");//可以傳遞一個true參數,代表不覆蓋已有的文件,並在已有文件的末尾處進行數據續寫。

2.調用write方法,將字符串寫入到流中。Fw.write("abcde");

3.刷新流對象中的緩衝中的數據。將數據刷到目的地中。fw.flush();

4.關閉流資源,但是關閉之前會刷新一次內部的緩衝中的數據。將數據刷到目的地中。和flush的區別:flush刷新後,流可以繼續使用,closeshuaxin後,會將流關閉。

FileReader:

1.創建一個文件讀取流對象,和指定名稱的文件相關聯。要保證該文件是已經存在的,如果不存在,會發生FileNotFoundException異常。

2.【方法一】調用讀取流對象的read方法。一次讀一個字符。而且會自動往下讀。 

2.【方法二】定義一個字符數組。用於存儲獨到字符。該read(char[])返回的hi讀到字符個數。

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileReaderDemo
{
	/**
	 * 利用字符數組讀取字符流文件。
	 */
	public static void main(String[] args)
	{
		try 
		{
			FileReader fr=new FileReader("DateDemo.java");
			char[] buf=new char[1024];
			int num=0;
			if((num=fr.read(buf))!=-1)
			{
				System.out.println(new String(buf,0,num));
			}
			fr.close();
		} 
		catch (FileNotFoundException e) 
		{
			e.printStackTrace();
		} 
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}
}

------- android培訓java培訓、期待與您交流! ----------  詳細請查看:http://edu.csdn.net/heima/

發佈了24 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章