Java IO: Reader和Writer
轉(zhuǎn)載自? ?Java IO: Reader和Writer
作者:?Jakob?Jenkov?譯者:?李璟(jlee381344197@gmail.com)
Reader
原文鏈接
Reader是Java?IO中所有Reader的基類。Reader與InputStream類似,不同點在于,Reader基于字符而非基于字節(jié)。換句話說,Reader用于讀取文本,而InputStream用于讀取原始字節(jié)。
請記住,Java內(nèi)部使用UTF8編碼表示字符串。輸入流中一個字節(jié)可能并不等同于一個UTF8字符。如果你從輸入流中以字節(jié)為單位讀取UTF8編碼的文本,并且嘗試將讀取到的字節(jié)轉(zhuǎn)換成字符,你可能會得不到預(yù)期的結(jié)果。
read()方法返回一個包含了讀取到的字符內(nèi)容的int類型變量(譯者注:0~65535)。如果方法返回-1,表明Reader中已經(jīng)沒有剩余可讀取字符,此時可以關(guān)閉Reader。-1是一個int類型,不是byte或者char類型,這是不一樣的。
你通常會使用Reader的子類,而不會直接使用Reader。Reader的子類包括InputStreamReader,CharArrayReader,FileReader等等。可以查看Java?IO概述瀏覽完整的Reader表格。
Reader通常與文件、字符數(shù)組、網(wǎng)絡(luò)等數(shù)據(jù)源相關(guān)聯(lián),Java?IO概述中同樣說明了這一點。
Writer
原文鏈接
Writer是Java?IO中所有Writer的基類。與Reader和InputStream的關(guān)系類似,Writer基于字符而非基于字節(jié),Writer用于寫入文本,OutputStream用于寫入字節(jié)。
同樣,你最好使用Writer的子類,不需要直接使用Writer,因為子類的實現(xiàn)更加明確,更能表現(xiàn)你的意圖。常用子類包括OutputStreamWriter,CharArrayWriter,FileWriter等。
Writer的write(int?c)方法,會將傳入?yún)?shù)的低16位寫入到Writer中,忽略高16位的數(shù)據(jù)。
總結(jié)
以上是生活随笔為你收集整理的Java IO: Reader和Writer的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 焉得虎子上一句是什么 焉得虎子意思介绍
- 下一篇: Java IO: 序列化与ObjectI