黑馬程式設計師--第十八天:IO流第一天
阿新 • • 發佈:2019-02-12
---------------------- ASP.Net+Android+IO開發S、.Net培訓、期待與您交流! ----------------------
//18-1 import java.util.*; public class SystemDemo { public static void main(String[] args){ //Properties 是HashTable的子類,也就是Map的子類 Properties prop = System.getProperties(); //獲取指定系統資訊 String value = System.getProperty("os.name"); System.out.println("val="+value); //在系統中設定一些指定系統資訊 System.setProperty("mykey", "myvalue"); //獲取所以屬性資訊 /*for(Object obj: prop.keySet()){ String value = (String)prop.get(obj); System.out.println(obj+"::"+value); }*/ //java 命令檢視java 引數列表 //動態載入一些屬性資訊,在cmd中用-Dha=hahaha //詳細命令 java -Dha=hahaha SystemDemo String v = System.getProperty("ha"); System.out.println("v="+v); } } /* 總結: System.getProperties(); System.getProperty("key"); System.setProperty("key","value"); prop.keySet(); // Property 類的非靜態方法。 prop.get(obj);//get屬於Property類,而getProperty屬於System. */ /*18-2 Runtime:使應用程式與其執行環境相連線 沒有建構函式,不可new,可想到該類的方法都是靜態的。 然而該類中還有非靜態方法,則該類提供了方法用於獲取本類物件 該方法為getRuntime(); 這個特點可以看出該類使用了單例設計模式 */ class RuntimeDemo { public static void main(String[] args) throws Exception { Runtime r = Runtime.getRuntime(); Process p = r.exec("Notepad.exe SystemDemo.java"); Thread.sleep(4000); p.destroy(); System.out.println("Hello World!"); } } /* 總結 Runtime.getRuntime(); //Runtime 類的靜態方法 r.exec("Notepad.exe SystemDemo.java"); //Runtime 類的非靜態方法 Thread.sleep(4000); //Thread 類的靜態方法 p.destroy(); // Process 類的destroy */ //18-3 import java.util.*; import java.text.*; class DateDemo { public static void main(String[] args) { Date d = new Date();//列印的時間格式不合適 System.out.println(d); SimpleDateFormat sdt = new SimpleDateFormat("yyyy年MM月dd日 E hh:mm:ss"); String time = sdt.format(d); System.out.println(time); long l = System.currentTimeMillis(); Date date = new Date(l); System.out.println(date); } } /* 總結 new Date(); //Date類的建構函式 new SimpleDateFormat("yyyy年MM月dd日 E hh:mm:ss"); //SimpleDateFormat 類建構函式 sdt.format(d); //SDF類的format方法 //提問:format有3個引數,為何只用一個引數也能正常的執行? //因為用的是父類的方法。 */ //18-4 import java.util.*; import java.text.*; class CalendarDemo { public static void main(String[] args) { String[]month = {"一","二","三","四","五","六","七","八","九","十","十一","十二"}; String[]week = {"","日","一","二","三","四","五","六"}; Calendar c = Calendar.getInstance(); sop(c.get(Calendar.YEAR)+"年"+c.get(Calendar.MONTH)+"月"); sop(c.get(Calendar.YEAR)+"年"); sop(month[c.get(Calendar.MONTH)]+"月"); sop(c.get(Calendar.DAY_OF_MONTH)+"日"); sop("星期"+week[c.get(Calendar.DAY_OF_WEEK)]); } public static void sop (Object obj){ System.out.println(obj); } } /* 總結 Calendar.getInstance(); c.get(Calendar.YEAR); String[]month = {""};//String 數字, 運用查表法。 */ class CalendarDemo2 { public static void main(String[] args) { Calendar c = Calendar.getInstance(); c.set(2015,5,5); c.add(Calendar.YEAR, 5);//向前推就是加 負的值 show(c); System.out.println("Hello World!"); } public static void show(Calendar c) { String[]month = {"一","二","三","四","五","六","七","八","九","十","十一","十二"}; String[]week = {"","日","一","二","三","四","五","六"}; //Calendar c = Calendar.getInstance(); sop(c.get(Calendar.YEAR)+"年"+c.get(Calendar.MONTH)+"月"); sop(c.get(Calendar.YEAR)+"年"); sop(month[c.get(Calendar.MONTH)]+"月"); sop(c.get(Calendar.DAY_OF_MONTH)+"日"); sop("星期"+week[c.get(Calendar.DAY_OF_WEEK)]); } public static void sop (Object obj){ System.out.println(obj); } } /* 總結 c.set(2015,5,5); c.add(Calendar.DAY_OF_MONTH, -1); */ //18-5 class MathDemo { public static void main(String[] args) { System.out.println("Hello World!"); } } /* 總結 ceil(); floor(); random(); pow(2,3);//指數運算 new Random().nextint(10); DecimalFormat df = new DecimalFormat(".00"); df.format(); */ //18-7 import java.io.*; class FileWriteDemo { public static void main(String[] args) throws IOException { //建立或覆蓋已有檔案於指定目錄,該物件一被初始化就必須明確被操作的檔案物件。 FileWriter fw = new FileWriter("demo.txt"); //把字元寫入到流中 fw.write("adfaffa"); //重新整理緩衝區 fw.flush(); //重新整理並關閉緩衝區 fw.close(); System.out.println("Hello World!"); } } /* sum: new FileWriter("demo.txt"); fw.write("afadf"); fw.flush(); fw.close(); */ //18-8 import java.io.*; class FileWriterDemo2 { public static void main(String[] args) { System.out.println("afaf"); FileWriter fw = null; try{ fw = new FileWriter("k:\\demo.txt"); fw.write("abdaf"); } catch(Exception e){ System.out.println(e.toString()); } finally{ try{ if(fw!=null) //必須判斷fw不是空指標。 fw.close(); } catch(Exception e){ System.out.println(e.toString()); } } } } /* sum: 必須判斷fw不為空指標。 */ //18-9 import java.io.*; class FileWriterDemo3 { public static void main(String[] args) throws IOException { FileWriter fw = new FileWriter("demo.txt", true); //引數: //file - 要寫入資料的 File 物件 //append - 如果為 true,則將位元組寫入檔案末尾處,而不是寫入檔案開始處 fw.write("\r\nwindows換行符,\nlinux換行符"); fw.close(); } } /* sum: new FileWriter("demo.txt",true);//續寫檔案 \r\n,與\n的區別。 */ //18-10 import java.io.*; class FileReaderDemo { public static void main(String[] args) throws IOException { //建立目標檔案的流物件 FileReader fr = new FileReader("demo.txt"); //read一次讀一個字元,且自動向下移動。當檔案讀完是返回-1。 //read();返回: //作為整數讀取的字元,範圍在 0 到 65535 之間 (0x00-0xffff), //如果已到達流的末尾,則返回 -1 int ch = 0; while((ch = fr.read())!=-1){ System.out.println((char)ch); } /*while(true){ int ch = fr.read(); if(ch==-1) break; System.out.println(ch); }*/ fr.close(); } } /* sum: fr.read(); */ //18-11 import java.io.*; class FileReaderDemo2 { public static void main(String[] args) throws IOException { FileReader fr = new FileReader("demo.txt"); //read(char[]) 返回讀到字元個數,當資料讀完是返回-1。 char[] buff = new char[1024]; int num = 0; while((num=fr.read(buff))!=-1) System.out.print(new String(buff,0,num)); //用print而不用println fr.close(); } } /* sum: read(char[]); new String(buff,0,num);//分配一個新的 String,它包含取自字元陣列引數一個子陣列的字元。 */ //18-13 import java.io.*; class CopyDemo { public static void main(String[] args) { System.out.println("Hello World!"); } public static void copy(){ FileReader fr = null; FileWriter fw = null; try{ fr = new FileReader("FileReaderDemo.java"); fw = new FileWriter("FileReaderDemo_copy.java"); char [] buff = new char[1024]; int len =0; while((len = fr.read(buff))!=-1) fw.write(new String(buff,0,len)); } catch(IOException e){ throw new RuntimeException("讀寫失敗"); } finally{ try{ if(fr!=null) fr.close(); }catch(IOException e){ System.out.println(e.toString()); } try{ if (fw!=null) { fw.close(); } }catch(IOException e){ System.out.println(e.toString()); } } } } /* sum: 多個流要分開try。 */
---------------------- ASP.Net+Android+IO開發S、.Net培訓、期待與您交流! ----------------------