日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

201521123057 《Java程序设计》第12周学习总结

發布時間:2023/12/10 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 201521123057 《Java程序设计》第12周学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 本周學習總結

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

2. 書面作業

1.字符流與文本文件:使用 PrintWriter(寫),BufferedReader(讀)

將Student對象(屬性:int id, String name,int age,double grade)寫入文件student.data、從文件讀出顯示。
1.1 生成的三個學生對象,使用PrintWriter的println方法寫入student.txt,每行一個學生,學生的每個屬性之間用|作為分隔。使用Scanner或者BufferedReader將student.txt的數據讀出。(截圖關鍵代碼,出現學號)

1.2 生成文件大小多少?分析該文件大小

生成文件大小:49字節 第一行Student類型數組的長度(int):1字節 學生id(int):1字節 學生姓名(String):4字節 學生年齡(int):2字節 學生成績(Double):4字節 分隔符(每行有3個):3字節 一共有3行學生信息:16*3+1=49字節

1.3 如果調用PrintWriter的println方法,但在后面不close。文件大小是多少?為什么?

文件大小變為0kb,使用close()方法關閉此流,但要先刷新它flush() 一次 flush() 調用將刷新 Writer 和 OutputStream 鏈中的所有緩沖區 緩沖區數據的沒有真正實現寫出,數據丟失

2.緩沖流

2.1 使用PrintWriter往文件里寫入1千萬行(隨便什么內容都行),然后對比使用BufferedReader與使用Scanner從該文件中讀取數據的速度(只讀取,不輸出),使用哪種方法快?請詳細分析原因?提示:可以使用junit4對比運行時間

BufferedReader更快,BufferedReader使用了緩存技術 (圖見下題)

2.2 將PrintWriter換成BufferedWriter,觀察寫入文件的速度是否有提升。記錄兩者的運行時間。試分析原因
參考:本題具體要求見流與文件實驗任務書-題目1-2.1到2.3

BufferedWriter使用了緩沖技術

3.字符編碼

3.1 現有EncodeTest.txt 文件,該文件使用UTF-8編碼。使用FileReader與BufferedReader將EncodeTest.txt的文本讀入并輸出。是否有亂碼?為什么會有亂碼?如何解決?(截圖關鍵代碼,出現學號)

亂碼:EncodeTest.txt的編碼方式UTF-8與GBK不同,導致亂碼

3.2 編寫一個方法convertGBK2UTF8(String src, String dst),可以將以GBK編碼的源文件src轉換成以UTF8編碼的目的文件dst。
參考:InputStreamReaderTest.java與教學PPT

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

4.1 參考DataStream目錄相關代碼,嘗試將三個學生對象的數據寫入文件,然后從文件讀出并顯示。(截圖關鍵代碼,出現學號)

4.2 生成的文件有多大?分析該文件大小?將該文件大小和題目1生成的文件對比是大了還是小了,為什么?

變大了 學生id(int):4字節 學生姓名(String):8字節 學生年齡(int):4字節 學生成績(Double):8字節 一共有3行學生信息:(4+8+4+8)*3=72字節

4.3 使用wxMEdit的16進制模式(或者其他文本編輯器的16進制模式)打開student.data,分析數據在文件中是如何存儲的。

在截圖中可以發現id=1 對應00000001,推斷數據是按照其類型占不同大小的字節

4.4 使用ObjectInputStream(讀), ObjectOutputStream(寫)讀寫學生。(截圖關鍵代碼,出現學號) //參考ObjectStreamTest目錄
參考:本題具體要求見流與文件實驗任務書-題目1-1

5.基本概念

編寫public static List readStudents(String fileName);從fileName指定的文本文件中讀取所有學生,并將其放入到一個List中。應該使用那些IO相關的類?說說你的選擇理由。
參考:TextFileTest目錄下TextFileTest.java

為了達到最高效率,可要考慮在 BufferedReader 內包裝 InputStreamReader。例如:BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

7.文件操作

編寫一個程序,可以根據指定目錄和文件名,搜索該目錄及子目錄下的所有文件,如果沒有找到指定文件名,則顯示無匹配,否則將所有找到的文件名與文件夾名顯示出來。
7.1 編寫public static void findFile(String path,String filename)函數,以path指定的路徑為根目錄,在其目錄與子目錄下查找所有和filename相同的文件名,一旦找到就馬上輸出到控制臺。(截圖關鍵代碼,出現學號)

8.正則表達式

8.1 如何判斷一個給定的字符串是否是10進制數字格式?嘗試編程進行驗證。(截圖關鍵代碼,出現學號)
參考:本題具體要求見流與文件實驗任務書-題目3

3. 碼云及PTA

3.1. 碼云代碼提交記錄

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

轉載于:https://www.cnblogs.com/wufuckshuo/p/6834183.html

總結

以上是生活随笔為你收集整理的201521123057 《Java程序设计》第12周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。