當前位置:首頁 » 編程語言 » java文件位元組流

java文件位元組流

發布時間: 2022-06-22 19:05:36

java之字元流與位元組流的區別和聯系

字元流處理的單元為2個位元組的unicode字元,分別操作字元、字元數組或字元串,而位元組流處理單元為1個位元組,
操作位元組和位元組數組。所以字元流是由java虛擬機將位元組轉化為2個位元組的unicode字元為單位的字元而成的,所以它對多國語言支持性比較好!如果是
音頻文件、圖片、歌曲,就用位元組流好點,如果是關繫到中文(文本)的,用字元流好點.
所有文件的儲存是都是位元組(byte)的儲存,在磁碟上保留的並不是文件的字元而是先把字元編碼成位元組,再儲存這些位元組到磁碟。在讀取文件(特別是文本文件)時,也是一個位元組一個位元組地讀取以形成位元組序列.
位元組流可用於任何類型的對象,包括二進制對象,而字元流只能處理字元或者字元串;
2.
位元組流提供了處理任何類型的io操作的功能,但它不能直接處理unicode字元,而字元流就可以。

② java中如何做文件位元組輸入流

首先,我以往經驗是寫入位元組流和輸出位元組流的方式一定要一致,不然寫入的位元組流就會出錯甚至讀取不到,下面是位元組流的寫入和讀取方法:

importjava.io.*;
classTest{
publicstaticvoidmain(Stringargs[]){
FileInputStreamfis=null;
FileOutputStreamfos=null;
byte[]buffer=newbyte[100];
inttemp=0;
try{
fis=newFileInputStream("D:/wenhao/src/from.txt");
fos=newFileOutputStream("D:/wenhao/src/to.txt");
while(true){
temp=fis.read(buffer,0,buffer.length);
if(temp==-1){
break;
}
fos.write(buffer,0,temp);
}
}
catch(Exceptione){
System.out.println(e);
}
finally{
try{
fis.close();
fos.close();
}
catch(Exceptione2){
System.out.println(e2);
}
}
}
}

③ Java中字元流和位元組流都是用在什麼地方(不要傳統解釋,用自己的意思說出來)

位元組流:這個底層用得最多
1、網路傳輸:基本傳輸的都是位元組(如HTTP傳輸、或你調別人的介面(用AES加密)等)
2、讀取本地非文本文件:如要讀取 一張圖片,這時肯定只能用 位元組流

字元流:
1、這種最常用於讀本地的 文本文件,如讀一個 .java、.txt文件等

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

Java字元流是處理字元(Char)對象用的,位元組流是處理位元組(Byte)對象用的。處理的目標對象不同,處理方法也就不一樣了。
字元流處理的基本單位是字元(Java中的字元是16位的),輸入流以Reader為基礎,輸出流以Writer為基礎;
位元組流的基本單位是位元組(Java中的位元組是8位的),輸入流以
InputStream為基礎,輸出流以
OutputStream為基礎;
字元流在輸入時可以按字元讀取,也可以按行讀取,會去掉回車換行,常用於讀取字元數據;
而位元組流按位元組讀取,不作任何處理,常用於讀取二進制數據。
Java中的字元在內部都是使用Unicode進行表示的,因此,要正確讀取字元數據,需要知道字元的編碼字元集,字元流提供編碼字元集的指定,如果不指定使用系統默認的方式對字元數據進行編碼轉換,這個編碼字元集不正確,會造成讀進來的地字元出現亂碼。
位元組流雖然是讀取二進制數據用的,但也可以讀取字元文件,按位元組進行處理,讀進來之後可以根據編碼字元集進行轉換,也可以變成字元串。

⑤ java文件位元組流和字元流最好兩個版本

其實就是位元組與字元的區別。file****stream不能正確的將位元組轉換為字元。 你不需要糾結原因,這是java 1.0的io設計問題。在java編程思想這本書裡面有解釋。 你只需要記住一點:讀取的時候用filereader去讀。 純手打,請採納。

⑥ java什麼叫位元組流

位元組流(byte stream) 不包含邊界數據的連續流 位元組流是由位元組組成的,字元流是由字元組成的. Java里字元由兩個位元組組成.位元組流是最基本的,所有的InputStrem和OutputStream的子類都是,主要用在處理二進制數據,它是按位元組來處理的但實際中很多的數據是文本,又提出了字元流的概念,它是按虛擬機的encode來處理,也就是要進行字元集的轉化。在從位元組流轉化為字元流時,實際上就是byte[]轉化為String時,public String(byte bytes[], String charsetName)有一個關鍵的參數字元集編碼,通常我們都省略了,那系統就用操作系統默認的lang 流式傳輸主要指將整個音頻和視頻及三維媒體等多媒體文件經過特定的壓縮方式解析成一個個壓縮包,由視頻伺服器向用戶計算機順序或實時傳送。在採用流式傳輸方式的系統中,用戶不必像採用下載方式那樣等到整個文件全部下載完畢,而是只需經過幾秒或幾十秒的啟動延時即可在用戶的計算機上利用解壓設備對壓縮的A/V、3D等多媒體文件解壓後進行播放和觀看。此時多媒體文件的剩餘部分將在後台的伺服器內繼續下載。

⑦ java位元組流,字元流問題怎麼判斷一個文件要用位元組流還是用字元流

有中文就用字元流,沒中文可以用位元組流,這個應該根據你具體情況而定,就是看這個文件裡面內容的字元是什麼樣的,像中文就是一個位元組放不下,需要用兩個位元組來存儲,那麼字元流一個字元一個字元的往裡讀,所以能讀出來,你用位元組流就不行了,一個字元一個字元的往裡讀,把一個漢字拆成一半了,到時候操作系統不認識,顯示都問號,
一看到二進制你有啥不明白的,好多人都知道java裡面1個字元等於2個位元組,1個位元組等於8位,像背順口溜一樣,其實啥意思都不知道,我都服了,1個位元組等於8位,8位啥呀?2進制代碼啊,也就是01序列,這個序列是8位數,中文比較大,得佔16位,所以是2個位元組。
答案補充
第三行打錯字了,是:用位元組流就不行了,一個位元組一個位元組的往裡讀
答案補充
誰拷貝答案了,哪些答案都是垃圾,沒一個正確的,我拷貝它干什麼,
內存的存儲體上面分若干個存儲單元,一個存儲單元可以存儲8位或者16為,或者32位的,或者....的01序列,一個位元組等於8位,比如11111111,一個漢字在計算機內部要使用2個位元組來存儲,一個裝不下,也就是16位的01,你用位元組流讀,一下讀8位出來,還有8位給人家仍了那能行,么
答案補充
趕緊看
計算機組成原理
去吧

⑧ java讀取文件問題該選位元組流還是字元流

如果文本文件通常使用字元流,而像視頻、圖片、音頻等文件都是二進制數據,使用位元組流,當然文本文件也是可以通過位元組流來讀取和寫入的,位元組流更通用,字元流只不過是對位元組流進行了封裝,查表操作。希望可以幫到你的疑問

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

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

⑩ java中位元組流和字元流的問題

1
字元流是已雙位元組的形式讀取,字元流是可以轉成位元組流的,A是一樣的,ascii是unicode的子集
2
既然是按位元組讀那麼也就是說可以讀任何數據,讀出來的是2進制數據
3
如果是處理文字的話最好轉成字元流,其他格式如視頻,圖片按2進制讀

熱點內容
esp32搭建自己的伺服器 發布:2025-02-05 18:58:00 瀏覽:317
wampphp升級 發布:2025-02-05 18:50:53 瀏覽:918
源碼地帶 發布:2025-02-05 18:46:37 瀏覽:613
我的世界伺服器怎麼騎別人的頭 發布:2025-02-05 18:46:32 瀏覽:89
怎麼卸載ftp賬號 發布:2025-02-05 18:41:52 瀏覽:62
SQL指定的服務並未以 發布:2025-02-05 18:40:09 瀏覽:972
電腦連接不了伺服器什麼意思 發布:2025-02-05 18:34:46 瀏覽:355
2015版dw怎麼配置站點 發布:2025-02-05 18:33:37 瀏覽:429
php數組中重復值 發布:2025-02-05 18:16:59 瀏覽:366
分布式存儲優點 發布:2025-02-05 18:15:29 瀏覽:644