如果讀取方法從輸入流中讀取一個字節的數據,那麼當它必須讀取一個字符時,它是否會逐字節讀取兩次?作爲一個字符是2個字節?does Java.io.InputStream.read()方法讀取每個數據類型爲字節?
0
A
回答
1
InputStream
對字節進行操作。它是Java中的基礎I/O抽象。它可以讀取單個字節或一系列字節,具體取決於調用者請求的內容。但它對字符一無所知,所以它本身不能決定爲字符讀取兩個字節。 A Reader
將不得不請求這一點。
如果您需要閱讀字符,請使用Reader
從InputStream
中閱讀。
(同樣,讀取序列化的Java對象,你會使用ObjectInputStream
,這再次從InputStream
讀取他們。或者你也可以從InputStream
使用Scanner
從數字到文本讀取各種輸入一次。)
這種抽象的目的是責任的分離 -
- 的
InputStream
提供的字節流,並處理所有底層邏輯(文件讀出/網絡/ ...)。 Reader
將字節流轉換爲字符流,並且不關心數據來自何處。
0
按照可用的Oracle在線文檔https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#read()它讀取字節數組
+0
或單個字節。 – EJP
相關問題
- 1. 每個字節讀取陣列字節
- 2. 文件輸入流中讀取方法中使用的字節數據類型
- 3. OPC UA按路徑節點讀取字符串[]數據類型
- 4. 獲取數據類型字節大小
- 5. 1個字節整數數據類型
- 6. 從一個字節讀取EXIF數據[]
- 7. Interop.Excel - 讀取數據類型
- 8. 將文件讀取爲字節數組的最快方法
- 9. 說一個方法讀取一個字節的數據是什麼意思?
- 10. 從每個字節的文件字節讀取C++
- 11. 每次讀取單字節與多個字節時的性能?
- 12. 是否有更優雅的方式從ByteBuffer讀取四個字節並將每個字節視爲字符
- 13. HKQueryAnchor每個數據類型,每個源或每個數據源的每個數據類型?
- 14. 從類讀取字節
- 15. 無法讀取整個標題; 0字節讀取;預期512個字節
- 16. 爲什麼FileInputReader.read()每次只讀取5個字節(Java)?
- 17. 爲什麼BufferedInputStream每次最多讀取2048個字節?
- 18. 預期的方法讀取類型NSDictionary *
- 19. 讀取文件時驗證每個讀取的字節數組緩衝區
- 20. 如何讀取Java中每個數字的每個數字
- 21. 在c中每次讀取一個文件的字節數
- 22. Java數據類型到字節數組
- 23. 從字節讀取數據包ID
- 24. 我用jQuery()提取每個數據的類jquery方法
- 25. Android - 枚舉方法爲每個選項設置兩種數據類型
- 26. 作爲字節數組讀取文件
- 27. 如何在R中讀取字符類型數據作爲數據幀
- 28. 讀取字的函數只讀取每隔一個字母
- 29. 找到每個模型的類方法
- 30. PHP反射 - 獲取方法參數類型爲字符串
你爲什麼不以DataInputStream類使用readChar? – tommybee
所有數據都是字節,'read()'返回一個字節。 – Kayaman
它*不*必須'讀'字符'。它被指定讀取字節,這就是它的作用。你的問題沒有意義。 – EJP