1. 程式人生 > >201521123116 《java程序設計》第十二周學習總結

201521123116 《java程序設計》第十二周學習總結

textfile objects test tput bsp cti 目的 字節 指定

1. 本周學習總結

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

技術分享

2. 書面作業

Q1.字符流與文本文件:使用 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。

4. 字節流、二進制文件:DataInputStream, DataOutputStream、ObjectInputStream

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

  • 5. Scanner基本概念組裝對象

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

  • 實驗文件:Students.txt
  • 參考:TextFileTest目錄下TextFileTest.java
  • 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編碼格式,並測試。

      • 3. 碼雲及PTA

        3.1. 碼雲代碼提交記錄

        • 在碼雲的項目中,依次選擇“統計-Commits歷史-設置時間段”, 然後搜索並截圖

        3.2 PTA以前未完成的題目

        • 截圖

201521123116 《java程序設計》第十二周學習總結