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位的資料。
//java學習交流:737251827 進入可領取學習資源及對十年開發經驗大佬提問,免費解答!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70010294/viewspace-2844480/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java IO: Reader And WriterJava
- IO流中的Reader讀操作
- JAVA IO流對檔案內容的修改(以BufferedReader&Writer為例)Java
- Java IO 和 NIOJava
- io.Reader遊標引發的血案
- Java 非阻塞 IO 和非同步 IOJava非同步
- DataX二次開發詳解-Kingbasees86Reader、Kingbasees86Writer外掛
- 如何在 Go 中將 []byte 轉換為 io.Reader?Go
- Java網路程式設計和NIO詳解5:Java 非阻塞 IO 和非同步 IOJava程式設計非同步
- [java IO流]之 IO概述Java
- 不學無數——Java中IO和NIOJava
- Java IO原始碼分析(三)——PipedOutputStream和PipedInputStreamJava原始碼
- java -IO流Java
- Java IO流Java
- Java IO: 流Java
- Java IO: InputStreamJava
- Java IO: OutputStreamJava
- Java IO流Java
- java - IO流Java
- java.io.File中mkdir()和mkdirs()區別Java
- Java IO實踐Java
- Java的IO流Java
- [Java基礎]IOJava
- Java IO之NIOJava
- Java IO: 網路Java
- 備戰-Java IOJava
- Java NIO學習系列四:NIO和IO對比Java
- 【Java面試】IO和NIO有什麼區別?Java面試
- IO模式和IO多路複用(阻塞IO、非阻塞IO、同步IO、非同步IO等概念)模式非同步
- AnnotationConfigApplicationContext(1)之初始化Scanner和ReaderAPPContext
- java多執行緒、集合和IO面試題_02Java執行緒面試題
- Java io.File應用(建立路徑和檔案)Java
- Asyncdb(二):Java IO 初探Java
- Java:IO:深入理解Java
- java同步非阻塞IOJava
- 《Scalable IO in Java》譯文Java
- Java筆記-IO流Java筆記
- Java 檔案 IO 操作Java