![](/img/trans.png)
[英]What is actually difference between InputStream and Reader in 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
(所有字符輸出類)。 如果您要處理文本文件或其他文本流,則這些類很有用。 這些類也是Buffered
和Non-Buffered
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.