導航:首頁 > 編程語言 > java中的位元組流

java中的位元組流

發布時間:2023-11-18 08:42:15

1. java的字元流與位元組流到底有什麼區別

Java中的位元組流處理的最基本單位為單個位元組,它通常用來處理二進制數據。Java中最基本的兩個位元組流類是InputStream和OutputStream,它們分別代表了組基本的輸入位元組流和輸出位元組流。InputStream類與OutputStream類均為抽象類,我們在實際使用中通常使用Java類庫中提供的它們的一系列子類。下面我們以InputStream類為例,來介紹下Java中的位元組流。

2. Java字元流和位元組流對文件操作的區別

Java字元流是處理字元(Char)對象用的,位元組流是處理位元組(Byte)對象用的。處理的目標對象不同,處理方法也就不一樣了。

字元流處理的基本單位是字元(Java中的字元是16位的),輸入流以Reader為基礎,輸出流以Writer為基礎;
位元組流的基本單位是位元組(Java中的位元組是8位的),輸入流以 InputStream為基礎,輸出流以 OutputStream為基礎;

字元流在輸入時可以按字元讀取,也可以按行讀取,會去掉回車換行,常用於讀取字元數據;
而位元組流按位元組讀取,不作任何處理,常用於讀取二進制數據。

Java中的字元在內部都是使用Unicode進行表示的,因此,要正確讀取字元數據,需要知道字元的編碼字元集,字元流提供編碼字元集的指定,如果不指定使用系統默認的方式對字元數據進行編碼轉換,這個編碼字元集不正確,會造成讀進來的地字元出現亂碼。

位元組流雖然是讀取二進制數據用的,但也可以讀取字元文件,按位元組進行處理,讀進來之後可以根據編碼字元集進行轉換,也可以變成字元串。

3. java中有幾種類型的流

Java中的流分為兩種,一種是位元組流,另一種是字元流,分別由四個抽象類來表示(每種流包括輸入和輸出兩種所以一共四個):InputStream,OutputStream,Reader,Writer。Java中其他多種多樣變化的流均是由它們派生出來的.

字元流和位元組流是根據處理數據的不同來區分的。位元組流按照8位傳輸,位元組流是最基本的,所有文件的儲存是都是位元組(byte)的儲存,在磁碟上保留的並不是文件的字元而是先把字元編碼成位元組,再儲存這些位元組到磁碟。
1.位元組流可用於任何類型的對象,包括二進制對象,而字元流只能處理字元或者字元串;
2. 位元組流提供了處理任何類型的IO操作的功能,但它不能直接處理Unicode字元,而字元流就可以。
讀文本的時候用字元流,例如txt文件。讀非文本文件的時候用位元組流,例如mp3。理論上任何文件都能夠用位元組流讀取,但當讀取的是文本數據時,為了能還原成文本你必須再經過一個轉換的工序,相對來說字元流就省了這個麻煩,可以有方法直接讀取。
字元流處理的單元為2個位元組的Unicode字元,分別操作字元、字元數組或字元串,而位元組流處理單元為1個位元組, 操作位元組和位元組數組。所以字元流是由Java虛擬機將位元組轉化為2個位元組的Unicode字元為單位的字元而成的,所以它對多國語言支持性比較好!

4. java io流中的位元組流和字元流有什麼區別,該如何去選擇使用哪一個

一句話概括:位元組流是由位元組組成的,字元流是由字元組成的.Java里字元由兩個位元組組成.
擴展:位元組流是最基本的,所有的InputStream和OutputStream的子類都是,主要用在處理二進制數據,它是按位元組來處理的
但實際中很多的數據是文本,又提出了字元流的概念,它是按虛擬機的encode來處理,也就是要進行字元集的轉化
補充:實際上位元組流在操作時本身不會用到緩沖區(內存),是文件本身直接操作的,而字元流在操作時使用了緩沖區,通過緩沖區再操作文件。

5. java IO輸入輸出流中的各種位元組流,字元流類,我需要都記住嗎,還是只要記住幾個常用的呢

記住幾個常用的就行了, 一般也就是用幾個常用的。
位元組流
位元組流主要是操作byte類型數據,也byte數組為准,主要操作類就是
·位元組輸出流:OutputStream
·位元組輸入流:InputStream

字元流
在程序中一個字元等於2個位元組,那麼java提供了Reader、Writer兩個專門操作字元流的類。
·字元輸出流:Writer
·字元輸入流:Reader

位元組-字元轉換流
OutputStreamWriter和InputStreamReader
在整個IO包中,實際上就是位元組流和字元流,但是除了這兩個流之外,還存在一組位元組流-字元流的轉換類。
[java] view plainprint?
•OutputStreamWriter:是Writer的子類,將輸出的字元流轉換為位元組流。即:將一個位元組流的輸出對象變為位元組流的輸出對象
•InputStreamReader:是Reader的子類,將輸入的位元組流變為字元流,即:將一個位元組流的輸入對象變為字元流的輸入對象。

閱讀全文

與java中的位元組流相關的資料

熱點內容
雲眸用什麼app 瀏覽:203
前端程序員留在北上還是二線 瀏覽:382
基於單片機的門禁控制系統 瀏覽:969
計算機怎麼折疊文件夾 瀏覽:148
什麼是伺服器拆機卡 瀏覽:279
ad18編譯pcb 瀏覽:344
開原研究生管理系統源碼 瀏覽:168
pdf擦除工具 瀏覽:373
帝國首頁模板下載哪個文件夾 瀏覽:855
有沒有用雲伺服器賺錢的 瀏覽:93
rubypdf 瀏覽:471
文藝復興史pdf 瀏覽:733
PDFgps測量 瀏覽:982
2k16生涯模式文件夾 瀏覽:395
研發雲伺服器續費 瀏覽:447
php地址重寫 瀏覽:344
網上練瑜伽用什麼app最好 瀏覽:557
文件夾為何搜索不了 瀏覽:338
怎麼快捷刪除lol換膚文件夾 瀏覽:253
pdf填字 瀏覽:298