20175205 2018-2019-2 《Java程式設計》第六周學習總結
教材學習内容總結
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcukTN5cTM5kTO30CM0YjNzkzM4AjNwQDM5EDMy0SN0gTN5UTMvwFNwkTMwIzLcVDN4UTO1EzLcd2bsJ2Lc12bj5ycn9Gbi52YugTMwIzZtl2Lc9CX6MHc0RHaiojIsJye.png)
教材學習中的問題和解決過程
Q:不知道怎麼在IDEA上開啟斷言
A:
Run
- >
Edit Configurations
->
VM options
輸入
-ea
Q:教材第十章例子四,有關String類的方法String(a,0,n)不太懂
A:a是把一個位元組數組a從0取到n,取出來之後轉換成String類型
Q:教材第十章例子五,getBytes()方法沒有接觸過
A:String的getBytes()方法是得到一個作業系統預設的編碼格式的位元組數組。這個表示在不同情況下,傳回的東西不一樣。存儲字元資料時,會先進行查表,然後将查詢的結果寫入裝置,讀取時也是先查表,把查到的内容列印到顯示裝置上,getBytes()是使用預設的字元集進行轉換,getBytes(“utf-8”)是使用UTF-8編碼表進行轉換。
Q:教材例子六為什麼隻關閉了輸出流而沒有關閉輸入流
A: 。。。還沒有得到解答
Q:在使用Scanner解析檔案時,使用正規表達式作為分隔符,如何寫出正規表達式
"[^0123456789.]+"
[^abc]
比對除了abc以外的任意字元
+
(懶惰) 重複一次或更多次,例如"aaaaaaaa" 比對字元串中所有的a 正則: "a+" 會取到字元中所有的a字元, "a+"與"a"不同在于"+"至少是一次而"" 可以是0次,
代碼調試中的問題和解決過程
Q:在IDEA中運作結果所顯示的位元組數和書上的不同
A:不同的編碼格式占位元組數是不同的,UTF-8編碼下一個中文占3位元組。
Q:在字元輸入,輸出流遇到一段代碼,不知道flush的作用
out.flush();
out.close();
A:flush()這個函數是清空的意思,用于清空緩沖區的資料流,進行流的操作時,資料先被讀到記憶體中,然後再用資料寫到檔案中,那麼當你資料讀完時,我們如果這時調用close()方法關閉讀寫流,這時就可能造成資料丢失,因為,讀入資料完成時不代表寫入資料完成,一部分資料可能會留在緩存區中。
代碼托管
總結
這兩章讓我學的頭大,新的類和方法十分多,學完之後方法有些混淆,是以我對所學過的内容做了一個總結。
-
所有輸入流類都是抽象類InputStream(位元組輸入流),或者抽象類Reader(字元輸入流)的子類;
而所有輸出流都是抽象類OutputStream(位元組輸出流)或者Writer(字元輸出流)的子類。
- 位元組輸入流
第六周學習總結 - 位元組輸出流
第六周學習總結 - 字元輸入流
第六周學習總結 - 字元輸出流
第六周學習總結
- 位元組輸入流
- 具體用法
- 位元組輸入輸出流
第六周學習總結 第六周學習總結 - 字元輸入輸出流
第六周學習總結
- 位元組輸入輸出流
參考資料
- 在IDEA中開啟斷言語句的方式
- 關于java中輸出流flush()方法
- java輸入輸出流(I/O)總結
- 深入了解正規表達式