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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

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

發(fā)布時(shí)間:2025/7/14 java 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 201521123009 《Java程序设计》第12周学习总结 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 本周學(xué)習(xí)總結(jié)

2. 書(shū)面作業(yè)

Q1:將Student對(duì)象(屬性:int id, String name,int age,double grade)寫(xiě)入文件student.data、從文件讀出顯示

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

1.1 生成的三個(gè)學(xué)生對(duì)象,使用PrintWriter的println方法寫(xiě)入student.txt,每行一個(gè)學(xué)生,學(xué)生的每個(gè)屬性之間用|作為分隔。使用Scanner或者BufferedReader將student.txt的數(shù)據(jù)讀出。(截圖關(guān)鍵代碼,出現(xiàn)學(xué)號(hào))

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



num 1字節(jié)
name 4字節(jié)
age 2字節(jié)
score 4字節(jié)
分隔符 3字節(jié)
行末 2字節(jié)
所以一共有:51字節(jié)

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

如果調(diào)用PrintWriter的println方法,但在后面不close。文件大小是0字節(jié);因?yàn)閏lose方法可以調(diào)用flush()來(lái)強(qiáng)制輸出緩沖區(qū)的數(shù)據(jù),沒(méi)有close方法,數(shù)據(jù)就在緩沖區(qū)丟失了。

Q2. 緩沖流

2.1 使用PrintWriter往文件里寫(xiě)入1千萬(wàn)行(隨便什么內(nèi)容都行),然后對(duì)比使用BufferedReader與使用Scanner從該文件中讀取數(shù)據(jù)的速度(只讀取,不輸出),使用哪種方法快?請(qǐng)?jiān)敿?xì)分析原因?提示:可以使用junit4對(duì)比運(yùn)行時(shí)間


使用BufferedReader比使用Scanner從該文件中讀取數(shù)據(jù)的速度快,因?yàn)锽ufferedReader是把數(shù)據(jù)讀到緩存區(qū)然后在寫(xiě)到硬盤(pán)里,減少了IO次數(shù),所以快。

2.2 將PrintWriter換成BufferedWriter,觀察寫(xiě)入文件的速度是否有提升。記錄兩者的運(yùn)行時(shí)間。試分析原因。


BufferedWriter比較快,因?yàn)锽ufferedWriter有緩沖區(qū)。

Q3:字符編碼

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

3.2 編寫(xiě)一個(gè)方法convertGBK2UTF8(String src, String dst),可以將以GBK編碼的源文件src轉(zhuǎn)換成以UTF8編碼的目的文件dst。


參考:InputStreamReaderTest.java與教學(xué)PPT

Q4:字節(jié)流、二進(jìn)制文件:DataInputStream, DataOutputStream、ObjectInputStream

4.1 參考DataStream目錄相關(guān)代碼,嘗試將三個(gè)學(xué)生對(duì)象的數(shù)據(jù)寫(xiě)入文件,然后從文件讀出并顯示。(截圖關(guān)鍵代碼,出現(xiàn)學(xué)號(hào))

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

生成文件72字節(jié),比題目1生成的文件大,因?yàn)镈ataOutputStream寫(xiě)入文件是按照不同的數(shù)據(jù)類型寫(xiě)入,每個(gè)數(shù)據(jù)類型會(huì)占一定的大小。

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

4.4 使用ObjectInputStream(讀), ObjectOutputStream(寫(xiě))讀寫(xiě)學(xué)生。(截圖關(guān)鍵代碼,出現(xiàn)學(xué)號(hào)) //參考ObjectStreamTest目錄


參考:本題具體要求見(jiàn)流與文件實(shí)驗(yàn)任務(wù)書(shū)-題目1-1

  • Scanner基本概念組裝對(duì)象

    Q5:編寫(xiě)public static List readStudents(String fileName)從fileName指定的文本文件中讀取所有學(xué)生,并將其放入到一個(gè)List中。應(yīng)該使用那些IO相關(guān)的類?說(shuō)說(shuō)你的選擇理由。

    實(shí)驗(yàn)文件:Students.txt

    使用BufferedReader,有緩存,速度高;然后要用InputStreamReader,因?yàn)橐xUTF-8格式的文件。
    參考:TextFileTest目錄下TextFileTest.java

  • Q7:文件操作

    編寫(xiě)一個(gè)程序,可以根據(jù)指定目錄和文件名,搜索該目錄及子目錄下的所有文件,如果沒(méi)有找到指定文件名,則顯示無(wú)匹配,否則將所有找到的文件名與文件夾名顯示出來(lái)。

    7.1 編寫(xiě)public static void findFile(String path,String filename)函數(shù),以path指定的路徑為根目錄,在其目錄與子目錄下查找所有和filename相同的文件名,一旦找到就馬上輸出到控制臺(tái)。(截圖關(guān)鍵代碼,出現(xiàn)學(xué)號(hào))


    參考代碼:FindDirectories.java
    參考:本題具體要求見(jiàn)流與文件實(shí)驗(yàn)任務(wù)書(shū)-題目2
    參考資料:判斷文件的編碼格式

    Q8:正則表達(dá)式

    8.1 如何判斷一個(gè)給定的字符串是否是10進(jìn)制數(shù)字格式?嘗試編程進(jìn)行驗(yàn)證。(截圖關(guān)鍵代碼,出現(xiàn)學(xué)號(hào))


    參考:本題具體要求見(jiàn)流與文件實(shí)驗(yàn)任務(wù)書(shū)-題目3

    3. 碼云及PTA

    3.1. 碼云代碼提交記錄

    3.2 PTA以前未完成的題目

    轉(zhuǎn)載于:https://www.cnblogs.com/z1450429983/p/6847528.html

    總結(jié)

    以上是生活随笔為你收集整理的201521123009 《Java程序设计》第12周学习总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。