簡體   English   中英

字節流和字符流

[英]Byte Stream and Character stream

請解釋什么是字節流和字符流。 這些到底是什么意思? Microsoft Word文檔是面向字節還是面向字符?

謝謝

流是順序訪問文件的一種方式。 字節流逐字節訪問文件。 字節流適用於任何類型的文件,但不適用於文本文件。 例如,如果文件使用unicode編碼,並且一個字符用兩個字節表示,則字節流將分別處理這些字節,您需要自己進行轉換。

字符流將逐字符讀取文件。 字符流需要使用文件的編碼才能正常工作。

盡管Microsoft Word文檔包含文本,但是無法使用字符流(它不是文本文件)進行訪問。 您需要使用字節流來訪問它。

ByteStreams

從oracle文檔頁面中有關字節流的信息

程序使用字節流執行8位字節的輸入和輸出。 所有字節流類都從InputStreamOutputStream繼承。

在此處輸入圖片說明

何時使用:

字節流僅應用於最原始的I / O

何時不使用:

您不應使用字節流讀取字符流

例如讀取文本文件

字符流:

從oracle文檔頁面中有關字符流的信息

Java平台使用Unicode約定存儲字符值。 字符流I / O自動將此內部格式與本地字符集轉換。

所有字符流類均來自ReaderWriter

字符流通常是字節流的“包裝器”。 字符流使用字節流執行物理I / O,而字符流則處理字符和字節之間的轉換。

有兩個通用的字節到字符“橋”流: InputStreamReaderOutputStreamWriter

何時使用:

Socket或字符File中讀取字符流

總結

字節流一次讀取和寫入一個字節。 在處理更復雜的數據時,我們必須避免使用字節流。

字符流和其他可用流應用於處理復雜的數據。

1.面向字符與數據類型相關。 只能讀取字符串類型或字符類型,而面向字節的數據不與任何數據類型綁定,可以讀取任何數據類型的數據(字符串除外),只需指定即可。

2.面向字符的讀取字符,而面向字節的讀取字節

3,面向字符的流使用字符編碼方案(UNICODE),而面向字節的流不使用任何編碼方案

4.面向字符的流也稱為讀取器和寫入器流面向字節的流被稱為數據流-數據輸入流和數據輸出流

閱讀 它告訴您字節和字符之間的區別(以及其他有用內容的負載)

字符流將逐字符讀取文件。 字符流可以讀取16位字符(字節流可以讀取8位字符)。 字符流能夠將8位數據隱式轉換為16位數據,反之亦然。 字符流可以支持所有類型的字符集ASCII,Unicode,UTF-8,UTF-16等,但是字節流僅適用於ASCII字符集.Java平台使用Unicode約定存儲字符值。 字符流I / O自動將此內部格式與本地字符集轉換。

除非使用圖像和聲音文件等二進制數據,否則應使用讀取器和寫入器通過字符流讀取和寫入信息。

暫無
暫無

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

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