簡體   English   中英

Java流和閱讀器之間有什么區別?

[英]What is the difference between a stream and a reader in Java?

今天我有這個問題,我認為我回答的很不好。 我說過流是流動的數據,而閱讀器是一種我們從中讀取的技術,它是靜態數據。 我知道這是一個糟糕的答案,因此請通過Java示例為我提供這兩者之間的清晰區別和定義。

謝謝。

InputStream是面向字節的。 讀者是面向角色的。

javadocs是您的朋友,解釋了兩者之間的區別。 閱讀器為InputStream

正如其他人所說,每種情況的用例略有不同(即使它們經常可以互換使用)

由於閱讀器用於閱讀字符,因此當您處理文本性質的輸入(或以字符表示的數據)時,閱讀器會更好。 我之所以說得更好,是因為Reader(在典型用法的上下文中)本質上是具有易於促進閱讀字符輸入的方法的流。

流用於讀取字節,讀取器用於讀取字符。 一個字符可能占用一個字節或更多個字節,具體取決於字符集。

流類是面向字節的類,這意味着所有InputStream類(緩沖和非緩沖)都從流中逐字節讀取數據,而所有OutputStream (緩沖和非緩沖)都將字節逐字節地寫入數據流。 當數據量較小或處理二進制文件(例如圖像)時,流類很有用。

另一方面, Reader/Writer是基於字符的類。 這些類可以同時從流中讀取或寫入一個字符。 這些類擴展了java.io.Reader (所有字符輸入類)或java.io.Writer (所有字符輸出類)。 如果您要處理文本文件或其他文本流,則這些類很有用。 這些類也是BufferedNon-Buffered

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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