Properties通過load和store方法將Key=Value的對(duì)應(yīng)關(guān)系從文件中加載并轉(zhuǎn)化為Properties對(duì)象和將Properties對(duì)象轉(zhuǎn)化為Key=Value對(duì)應(yīng)關(guān)系存在到文件中 。注意:在文件中存儲(chǔ)的Key=Value關(guān)系形式 , 在等號(hào)兩側(cè)是否有空格很重要 , 如果有空格 , 雖然看上去是沒什么問題 , 但是對(duì)于Properties對(duì)象而言卻不是你想要的結(jié)果 , 可以自己嘗試一下 。如果需要在被Load的文件中添加注釋的話 , 則在行首添加 # 即可 。
#this is a test conf#Sat Sep 21 15:03:54 CST 2019Age=20Name=vitaminPrintStream & PrintWriter
最后再來說一下Java提供的打印流 PrintStream 和 PrintWriter , 可以在輸出的數(shù)據(jù)上做一些格式化操作 。提起 PrintStream 你可能會(huì)感到很陌生 , 但你是否留意過經(jīng)常使用的System.out.print() 方法的內(nèi)部實(shí)現(xiàn) , 它的底層就是使用 PrintStream 來操作的 , PrintStream 繼承自文件字節(jié)流 FileOutputStream 。對(duì)于后者 PrintWriter 更加常用 , 因?yàn)樗鼘?shí)現(xiàn)了前者的所有方法 , 并且可以實(shí)現(xiàn)對(duì)字符流的打印 , 這是PrintStream所沒有的 。所以 PrintWriter 也更加靈活 。下面通過示例來感受下 PrintWriter吧
File file =new File("destFile.txt");PrintWriter pw =null;try{ pw = new PrintWriter(file); pw.printf("Name=%s", "vitamin"); pw.flush();}catch(IOException ex) {}finally { pw.close(); }值得注意的一點(diǎn)是 PrintWriter 的 close() 方法不會(huì)拋出IOException , 因?yàn)樵诘讓舆@個(gè)異常已經(jīng)被捕捉并處理了 。
PrintWriter的內(nèi)部是有緩沖區(qū)的(當(dāng)構(gòu)造函數(shù)傳入的是File類型時(shí) , 內(nèi)部使用的是BefferedWriter來實(shí)現(xiàn)的) , 所以需要手動(dòng)調(diào)用flush()方法 。但是PrintWriter的構(gòu)造函數(shù)支持第二個(gè)參數(shù):是否啟用自動(dòng)刷新緩沖 。當(dāng)設(shè)置為true后 , 僅當(dāng)調(diào)用 println , printf , format 方法時(shí)才會(huì)生效 。
IO流的選擇
上面說了這么多的IO流 , 到底什么場(chǎng)景下需要該使用什么流呢?來看一張圖
除了上面的圖之外還需要在額外問自己幾個(gè)問題:
是否需要進(jìn)行序列化和反序列化操作?如果是則選擇 ObjectInputStream 或 ObjectOutputStream 。是否需要讀取Key=Value形式或者是想要存儲(chǔ)成Key=Value形式的配置?如果是可以選擇 Properties 操作起來更加方便 。是否需要打印指定格式的數(shù)據(jù)到輸出文件?可以考慮使用 PrintWriter , 其實(shí)它就是在流的基礎(chǔ)上提供了一些更加簡(jiǎn)潔的操作 。end:如果你覺得本文對(duì)你有幫助的話 , 記得關(guān)注點(diǎn)贊轉(zhuǎn)發(fā) , 你的支持就是我更新動(dòng)力 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- java入門基礎(chǔ)知識(shí) java算法題面試
- java解壓各種類型的文件 java解壓zip文件為空
- 講解java部署jar還是war優(yōu)劣 jar運(yùn)行命令
- java程序員必備的基礎(chǔ)知識(shí) java截取字符串后幾位
- 哪個(gè)培訓(xùn)班靠譜?想要培訓(xùn)Java的應(yīng)該如何選擇? 程序員編程培訓(xùn)
- 自學(xué)java堅(jiān)持不下去了,要找Java培訓(xùn)機(jī)構(gòu)嗎 程序員編程培訓(xùn)
- 簡(jiǎn)單好玩的編程代碼 javascriptvoid怎么解決
- 教你javascript實(shí)時(shí)獲取鼠標(biāo)位置 js獲取鼠標(biāo)點(diǎn)擊的位置
- 你做 Java 程序員真的是因?yàn)闊釔蹎幔?程序員編程培訓(xùn)
- Java基本數(shù)據(jù)類型 java字符串拆分為數(shù)組
