Java IO: Reader和Writer
Reader
Reader是Java IO中所有Reader的基類。Reader與InputStream類似,不同點在於,Reader基於字符而非基於字節。換句話說,Reader用於讀取文本,而InputStream用於讀取原始字節。
請記住,Java內部使用UTF8編碼表示字符串。輸入流中一個字節可能並不等同於一個UTF8字符。如果你從輸入流中以字節為單位讀取UTF8編碼的文本,並且嚐試將讀取到的字節轉換成字符,你可能會得不到預期的結果。
read()方法返回一個包含了讀取到的字符內容的int類型變量(譯者注:0~65535)。如果方法返回-1,表明Reader中已經沒有剩餘可讀取字符,此時可以關閉Reader。-1是一個int類型,不是byte或者char類型,這是不一樣的。
你通常會使用Reader的子類,而不會直接使用Reader。Reader的子類包括InputStreamReader,CharArrayReader,FileReader等等。可以查看Java IO概述瀏覽完整的Reader表格。
Reader通常與文件、字符數組、網絡等數據源相關聯,Java IO概述中同樣說明了這一點。
Writer
Writer是Java IO中所有Writer的基類。與Reader和InputStream的關係類似,Writer基於字符而非基於字節,Writer用於寫入文本,OutputStream用於寫入字節。
同樣,你最好使用Writer的子類,不需要直接使用Writer,因為子類的實現更加明確,更能表現你的意圖。常用子類包括OutputStreamWriter,CharArrayWriter,FileWriter等。
Writer的write(int c)方法,會將傳入參數的低16位寫入到Writer中,忽略高16位的數據。
最後更新:2017-05-23 11:03:06
上一篇:
Java IO: 序列化與ObjectInputStream、ObjectOutputStream
下一篇:
Java IO: InputStreamReader和OutputStreamWriter
android模塊編譯,mm命令, 模塊編譯
MySQL鏈式複製加速神器: MaxScale Binlog Server(附視頻)
【雲周刊】第130期:阿裏研究院發布新網商五大預測,2020年將誕生第一個機器人網商?
iOS開發那些事-響應內存警告
iOS開發那些事-iOS6蘋果地圖實用開發
MongoDB開發學習(1)開天辟地,經典入門
阿裏雲發布“碼上公益”平台 打造更高效透明的“科技公益”
Spring 表達式語言(Spring EL)書目錄
Android 用Pull解析XML方法解析穀歌天氣
關於webview調用js出現has no method 'toString'