簡體   English   中英

Java.io.InputStream.read()方法將每個數據類型讀取為字節嗎?

[英]does Java.io.InputStream.read() Method read every datatype as byte?

如果read方法從輸入流中讀取一個字節的數據,那么當它必須讀取char時,是否逐字節讀取了兩次? 作為一個字符是2再見?

InputStream對字節進行操作。 它是Java中的基礎I / O抽象。 它可以讀取單個字節或字節序列,具體取決於調用者的請求。 但是它對字符一無所知,因此它本身不能決定讀取一個字符的兩個字節。 Reader將不得不要求這樣做。

如果需要讀取字符,請使用ReaderInputStream讀取它們。

(類似地,要讀取序列化的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM