201521123045 《Java程式設計》第12周學習總結

來源:互聯網
上載者:User

標籤:sum   ref   尋找   轉換   tutorial   iter   reads   設定   使用   

1. 本周學習總結

1.1 以你喜歡的方式(思維導圖或其他)歸納總結多流與檔案相關內容。

2. 書面作業

將Student對象(屬性:int id, String name,int age,double grade)寫入檔案student.data、從檔案讀出顯示。

1. 字元流與文字檔:使用 PrintWriter(寫),BufferedReader(讀)

1.1 產生的三個學生對象,使用PrintWriter的println方法寫入student.txt,每行一個學生,學生的每個屬性之間用|作為分隔。使用Scanner或者BufferedReader將student.txt的資料讀出。(關鍵代碼,出現學號)

1.2 組建檔案大小多少?分析該檔案大小

1.3 如果調用PrintWriter的println方法,但在後面不close。檔案大小是多少?為什嗎?

  • 參考:本題具體要求見流與檔案實驗任務書-題目1-2.1

  • 參考代碼:TextFileTest.java

2. 緩衝流

2.1 使用PrintWriter往檔案裡寫入1千萬行(隨便什麼內容都行),然後對比使用BufferedReader與使用Scanner從該檔案中讀取資料的速度(唯讀取,不輸出),使用哪種方法快?請詳細分析原因?提示:可以使用junit4對比已耗用時間

2.2 將PrintWriter換成BufferedWriter,觀察寫入檔案的速度是否有提升。記錄兩者的已耗用時間。試分析原因。

  • 參考:本題具體要求見流與檔案實驗任務書-題目1-2.2到2.3
  • 參考代碼:BufferedReaderTest.java
  • JUnit4常用註解
  • JUnit4學習
3. 字元編碼

3.1 現有EncodeTest.txt 檔案,該檔案使用UTF-8編碼。使用FileReader與BufferedReader將EncodeTest.txt的文本讀入並輸出。是否有亂碼?為什麼會有亂碼?如何解決?(關鍵代碼,出現學號)
3.2 編寫一個方法convertGBK2UTF8(String src, String dst),可以將以GBK編碼的源檔案src轉換成以UTF8編碼的目的檔案dst。

  • 參考:InputStreamReaderTest.java與教學PPT
4. 位元組流、二進位檔案:DataInputStream, DataOutputStream、ObjectInputStream

4.1 參考DataStream目錄相關代碼,嘗試將三個學生對象的資料寫入檔案,然後從檔案讀出並顯示。(關鍵代碼,出現學號)
4.2 產生的檔案有多大?分析該檔案大小?將該檔案大小和題目1產生的檔案對比是大了還是小了,為什嗎?
4.3 使用wxMEdit的16進位模式(或者其他文字編輯器的16進位模式)開啟student.data,分析資料在檔案中是如何儲存的。
4.4 使用ObjectInputStream(讀), ObjectOutputStream(寫)讀寫學生。(關鍵代碼,出現學號) //參考ObjectStreamTest目錄

  • 參考:本題具體要求見流與檔案實驗任務書-題目1-1
5. Scanner基本概念組裝對象

編寫public static List<Student> readStudents(String fileName)從fileName指定的文字檔中讀取所有學生,並將其放入到一個List中。應該使用那些IO相關的類?說說你的選擇理由。

  • 實驗檔案:Students.txt
  • 參考:TextFileTest目錄下TextFileTest.java
6. 選做:RandomAccessFile

6.1 使用RandomAccessFile實現題目1.1。(關鍵代碼,出現學號)
6.2 分析檔案大小

7. 檔案操作

編寫一個程式,可以根據指定目錄和檔案名稱,搜尋該目錄及子目錄下的所有檔案,如果沒有找到指定檔案名稱,則顯示無匹配,否則將所有找到的檔案名稱與檔案夾名顯示出來。
7.1 編寫public static void findFile(String path,String filename)函數,以path指定的路徑為根目錄,在其目錄與子目錄下尋找所有和filename相同的檔案名稱,一旦找到就馬上輸出到控制台。(關鍵代碼,出現學號)
7.2 加分點:使用隊列、使用圖形介面、使用Java NIO.2完成(任選1)
7.3 選做:實現刪掉指定目錄及其子目錄下的所有空檔案夾。

  • 參考代碼:FindDirectories.java
  • 參考:本題具體要求見流與檔案實驗任務書-題目2

7.4 選做:將指定目錄及子目錄下的所有.java檔案,轉化成UTF-8編碼格式,並測試。

  • 參考資料:判斷檔案的編碼格式
8. Regex

8.1 如何判斷一個給定的字串是否是10進位數字格式?嘗試編程進行驗證。(關鍵代碼,出現學號)
8.2 選做:修改HrefMatch.java,嘗試匹配網頁中的數字字串、匹配網頁中的圖片字串。

  • 參考:本題具體要求見流與檔案實驗任務書-題目3

8.3 選做(較難):進一步改造上面的程式,獲得圖片的連結,如IMG src="images/mail1.gif",然後經過處理,產生該圖片的實際連結地址http://cec.jmu.edu.com/images/mail1.gif。最後將產生的若干地址,放入一個隊列。編寫方法,可以依照該隊列的所有圖片地址,一次將圖片下載下來。
Regex參考文章

3. 碼雲及PTA3.1. 碼雲代碼提交記錄
  • 在碼雲的項目中,依次選擇“統計-Commits曆史-設定時間段”, 然後搜尋並
3.2 PTA以前未完成的題目
4.選做:課外閱讀

4.1 嘗試翻譯Lesson: Basic I/O中的Summary
4.2 嘗試完成Questions and Exercise
4.3 字元集與編碼
4.4 JavaRegex的文法與樣本

 

201521123045 《Java程式設計》第12周學習總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.