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...