這篇文章將為大家詳細講解有關(guān)如何在java項目中使用io流,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
弋江ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!1.1 java.io.objectInputStream 對象輸入流:用于將一組字節(jié)(通過對象輸出流寫出對象而轉(zhuǎn)換的一組字節(jié))讀取并轉(zhuǎn)換為對應的對象。對象輸出流將對象寫出時轉(zhuǎn)換為一組字節(jié)的過程,稱為:對象序列化對象輸入流將這組字節(jié)讀取并還原會對象的過程,稱為:對象反序列化
1.2 java.io.Serializable Serializable序列化接口
當一個類實現(xiàn)了Serializable接口后,應當在當前類中添加一個常量: 序列化版本號serialVersionUID
序列化版本號若不指定,那么編譯器會在編譯后的class文件中默認添加一個,而值則是根據(jù)當前類結(jié)構(gòu)生成,但這有一個問題,若當前類的結(jié)構(gòu)發(fā)生了變化,那么版本號會發(fā)生變化,所以建議自行制定版本號 版本號影響對象反序列化的結(jié)果:當對象輸入流讀取一個對象并嘗試進行反序列化時會檢測該對象的版本號與其所屬類現(xiàn)有版本號是否一致,一致則反序列化成功,不一致則反序列化失敗版本號一致的情況下,若待反序列化的對象與當前類現(xiàn)有結(jié)構(gòu)不一致是,則采取兼容模式,即:該對象的屬相現(xiàn)有類依然有的則還原,沒有的則被忽略。
transient--關(guān)鍵字:該關(guān)鍵字用來修飾屬性,那么當該對象進行序列化時,這個屬性的值會被忽略,從而達到對象“瘦身”的效果
1.3 java.io.FileOutputStream;Java根據(jù)流讀寫數(shù)據(jù)的單位劃分為:字節(jié)流,字符流 字節(jié)流以字節(jié)為單位讀寫數(shù)據(jù)字符流以字符(unicode)為單位讀寫數(shù)據(jù),但是底層本質(zhì)上還是讀寫字節(jié),只是字節(jié)與字符的轉(zhuǎn)換工作有字符流完成Weiter與Reader是所有字符流的父類,他們是一對抽象類,規(guī)定了所有字符流都要具備的讀寫字符方法。轉(zhuǎn)換流OutoutStreamWriter與InputStreamReader是字符流的一對常見實現(xiàn)類
OutputStreamWriter的構(gòu)造方法支持第二個參數(shù),可以指定字符集,這樣通過該流寫出的字符都會按照指定的字符集轉(zhuǎn)換,若不指定第二個參數(shù)則安裝系統(tǒng)默認字符集轉(zhuǎn)換
1.4 java.io.PrintWriter;緩沖字符流:緩沖字符流內(nèi)置緩沖區(qū),可以提高讀寫字符效率,并且緩沖字符流的特點可以按行讀寫字符串。
java.io.BufferedWriter
java.io.BufferefReader
java.io.printWriter是常用的緩沖字符輸出流,并且還提供了支佛那個行刷新功能,由于創(chuàng)建PrintWriter時其內(nèi)部總是嵌套BufferedWriter所以實際的緩沖操作是由BufferefWriter實現(xiàn)
printWriter(pw)支持直接對文件操作的構(gòu)造方法
printwriter(String path,String snc)
printwriter(File file,String snc)
csn:charset name 字符集名稱
PrintWriter在流鏈接中的構(gòu)造方法:
PrintWriter(OutputStream out)
PrintWriter(Writer out)
使用上訴構(gòu)造方法是,有一個對應的重載構(gòu)造方法要求傳入第二個參數(shù),該參數(shù)為boolean值若該值為true,則pw具有自動行刷新功能,即:每當使用PW。println()寫出內(nèi)容后都會自動進行
flush操作
PrintWriter(OutputStream out,boolean autoflush)
PrintWriter(Writer out,boolean autoflush)
1.5 java.io.BufferedReader;緩沖字節(jié)輸入流 可以按行讀取字符串
BufferedReader提供方法:
String readLine()連續(xù)讀取若干字符,知道讀取了換行符為止,將之前的所有字符以一個字符串形式返回。注意,返回的字符串中是不包含最后的換行的,若返回為null,則表示末尾.
2.1 異常捕獲機制中的try-catch
catch可以定義多個,針對try代碼塊中可能出現(xiàn)的異常有不同的處理方式時,需要單獨捕獲這些異常并編寫解決手段代碼但是應當養(yǎng)成一個習慣,就是在最后捕獲一個Exceotion,這樣會避免因拋出一個未捕獲的異常導致程序出現(xiàn)中斷的情況,當捕獲的異常之間存在繼承關(guān)系時,需要將子類異常定義在上面捕獲,后定義父類型異常。
異常捕獲機制中的finally;finally塊只能定義在異常捕獲機制的最后,即:try之后或者一個catch之后。finally塊可以保證無論try語句塊中的代碼是否拋出異常,finally塊中的代碼都必將執(zhí)行。所以通常會將無關(guān)異常都要執(zhí)行的代碼放入finally塊中確保執(zhí)行,比如IO操作中的關(guān)閉流操作。
注意:finalize;當一個對象即將被GC釋放前,GC會調(diào)用該對象的finalize方法,調(diào)用后該對象即被釋放。finalize方法是Object定義的方法
關(guān)于如何在java項目中使用io流就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享標題:如何在java項目中使用io流-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://aaarwkj.com/article48/cchohp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、響應式網(wǎng)站、小程序開發(fā)、網(wǎng)站設計、動態(tài)網(wǎng)站、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容