簡體   English   中英

Java中的字符流和字節流有什么區別?C中的字符串和字節與字節有什么區別?

[英]What's the difference Between Character Stream and Byte Stream in Java and Char vs Byte in C?

在java中,人們說輸入流逐字節讀取文件,然后使用緩沖讀取器將它們更改為characterstream.But在C char中引用字節(8位)。然后我們稱之為java中的字符和字節。

在Java中, byte是帶符號的8位值, char是無符號的16位值。 Character既是char的包裝類型,也是支持char的許多有用方法的實用程序類

InputSTream的主要區別在於它一次讀取一個字節的二進制數據。 Reader用於讀取文本,它使用您設置的字符編碼或默認編碼將字節解碼為char ,例如UTF-8可以將1,2或3個字節轉換為單個char

我建議你更多地了解Java的基礎知識。 這些問題可以為您節省大量時間。

對於C / C ++部分,在這些語言中,char保證至少為8位,因此char至少與字節一樣寬。 我從1990年開始編寫C語言,自1992年開始編寫C ++,我從未見過真正的平台/編譯器組合,其中char和byte不相等。

另請注意,除非另行指定,否則其他整數類型都是有符號的(例如'int'是有符號整數),但'char'等效於'unsigned char'。

流是一種順序訪問文件的方式。 在Streams中,您可以一次處理一個數據,因為批量操作不可用。 但是,流支持大量的源和目標,包括磁盤文件,數組,其他設備,其他程序等。在Java中,字節與char不同。 因此,字節流與字符流不同。 因此,Java定義了兩種類型的流:字節流和字符流。

Byte Streams

字節流逐字節地訪問文件。 Java程序使用字節流來執行8位字節的輸入和輸出。 它適用於任何類型的文件,但不太適合文本文件。 例如,如果文件使用的是unicode編碼,並且字符用兩個字節表示,則字節流將單獨處理這些字節,您需要自己進行轉換。 面向字節的流不使用任何編碼方案,而面向字符的流使用字符編碼方案(UNICODE)。 所有字節流類都來自InputStream和OutputStream。

暫無
暫無

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

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