[英]does Java.io.InputStream.read() Method read every datatype as byte?
如果read方法從輸入流中讀取一個字節的數據,那么當它必須讀取char時,是否逐字節讀取了兩次? 作為一個字符是2再見?
InputStream
對字節進行操作。 它是Java中的基礎I / O抽象。 它可以讀取單個字節或字節序列,具體取決於調用者的請求。 但是它對字符一無所知,因此它本身不能決定讀取一個字符的兩個字節。 Reader
將不得不要求這樣做。
如果需要讀取字符,請使用Reader
從InputStream
讀取它們。
(類似地,要讀取序列化的Java對象,您可以使用ObjectInputStream
,該對象再次從InputStream
讀取它們。或者您可以使用Scanner
從數字到文本再從InputStream
讀取各種輸入。)
這種抽象的目的是分離責任-
InputStream
提供字節流並處理所有基礎邏輯(文件讀取/網絡/ ...)。 Reader
將字節流轉換為字符流,並且不在乎數據來自何處。 根據在線提供的Oracle文檔https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#read(),它讀取字節數組
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.