IO流 位元組流

2021-10-05 06:16:27 字數 2363 閱讀 5194

io流分類:

按資料的流向:輸入流(讀資料)、輸出流(寫資料)

按資料型別:位元組流、字元流(一般來說,我們說io流的分類是按照資料型別來分的。)

那麼這兩種流都在什麼情況下使用呢

如果資料通過windows子代的記事本軟體開啟,我們還可以讀懂裡面的內容,就是用字元流,

否則使用位元組流。如果你不知道該使用哪種型別的流,就是用位元組流,因為位元組流是萬能的流。

如下圖所示,我們通過記事本軟體開啟後,完全看不懂裡面的內容是啥,這就是位元組流。

//建立位元組流輸出物件(引數就是我們要寫入資料的檔案)

fileoutputstream fos = new fileoutputstream(name:"mybytestream\\fos.txt")

//釋放資源(每次我們使用完流之後都要進行資源的釋放)

fos.close();

//一次寫乙個位元組資料void write(int b )(該方法是向檔案中寫入資料)

fos.write(99);

fos.write(98);

fos.write(97);

//我們在檔案中得到的結果為cba

// 一次寫乙個位元組陣列資料void write(byte b)

byte bys =;

fos.write(bys);

byte bys="abc".getbytes(); //返回字串對應的位元組陣列

void write(byte b , int off , int len)一次寫乙個位元組陣列的部分資料

例:fos.write(bys,1,2)//從第二個位元組開始讀取兩個長度的資料

1:位元組流寫資料如何實現換行呢?(下面是不同的作業系統的不同操作)

window:\r\n

linux:\n

mac:\r

2:位元組流寫資料如何實現追加寫入呢?(如果第二個引數為true,則位元組將寫入檔案的末尾而不是開頭,從而實現追加寫入)

第乙個引數為寫入檔案的名稱

//寫資料

for(inti=0;i<10;i++)

//加入finally來實現釋放資源

fileoutputstream fos=null;

try catch (ioexception e) finally catch (ioexception e) }}

//一次讀乙個字元資料

int ch;

while ((ch=isr.read())!=-1)

//一次讀乙個字元陣列資料

char chs = new char[1024];

int len;

while ((len=isr.read(chs))!=-1)

//根據資料來源建立位元組輸入流物件

fileinputstream fis = new fileinputstream("某個資料夾");

//根據資料來源建立位元組輸出流物件

fileoutputstream fos = new fileoutputstream("某個資料夾");

//讀寫資料,複製文字檔案(一次讀取乙個位元組,一次寫入乙個位元組)

int by;

while ((by=fis.read())!=-1)

/* //一次讀取乙個位元組陣列,一次寫入乙個位元組陣列

byte bys = new byte[1024];

int len ;

while ((len=fis.read(bys))!=-1)*/

//釋放資源

fis.close();

fos.close();

bufferoutputstream:該類實現緩衝輸出流。通過設定這樣的輸出流,應用程式可以向底層輸出流寫入位元組,而不必為寫入的每個位元組導致底層系統的呼叫(也就是說我們可以一部分一部分的寫進去)

bufferedinputstream:建立bufferedinputstream將建立乙個內部緩衝區陣列。當從流中讀取或跳過位元組時,內部緩衝區將根據需要從所包含的輸入流中重新填充,一次很多位元組。

構造方法:

位元組緩衝輸出流:bufferoutputstream(outputstream out)

位元組緩衝輸入流:bufferedinputstream(inputstream in)

從上我們可以看到,構造方法需要的是位元組流,而不是具體的檔案或者路徑。這是因為位元組緩衝流僅僅提供緩衝區,而真正的讀寫資料還得依靠基本的位元組流物件進行操作。

IO流 位元組流

位元組輸出流outputstream 此抽象類,是表示輸出位元組流的所有類的超類。操作的資料都是位元組,定義了輸出位元組流的基本共性功能方法。輸出流中定義的方法 close 關閉輸出流並釋放與此輸出流有關的所有系統資源 flush 重新整理此輸出流並強制寫出所有緩衝的輸出位元組 write byte...

IO流位元組流

io流就是裝置之間的資料傳輸 位元組流 任意型別的檔案都能讀寫 位元組流的 抽象 基類 inputstream 輸入流 outoutstream 輸出流 fileoutputstream的三個write 方法 public void write int b 寫乙個位元組 超過乙個位元組 砍掉前面的位...

IO 字元流 位元組流

io流 流按運算元據分為兩種 位元組流與字元流 流按流向分為 輸入流 輸出流 位元組流的抽象基類 inputstream outputstream 字元流的抽象基類 reader witer 這四個類派生出來的子類名稱都是以其父類名作為子類名的字尾。字元流 寫入流writer 用於操作檔案的writ...