黑馬程式設計師 流操作的基本規律

2021-06-22 17:50:41 字數 3760 閱讀 4091

---------------------- asp.net+unity開發、.net培訓、期待與您交流! ----------------------

流操作的基本規律:

流物件太多,容易混淆,通過兩個明確來完成

1,明確源和目的

源:輸入流:inputstream,   reader

目的:輸出流:outputstream, writer

2,明確操作的資料是否是純文字

是:字元流

否:位元組流

3,當體系明確後,再明確要使用哪個具體的物件

通過裝置來區分:

源裝置:記憶體,硬碟,鍵盤

目的:記憶體,硬碟,控制台

eg1:將乙個文字檔案中資料儲存到另乙個檔案中;檔案複製

源:inputstream reader

是操作文字:reader

reader 體系中可以操作檔案的物件:filereader

是否要提高效率:是,加入緩衝區bufferedreader

filereader fr = new filereader("a.txt");

bufferedreader bufr = new bufferedreader(fr);

目的:outputstream writer

是操作文字:writer

裝置:硬碟,乙個檔案

writer體系中可以操作檔案的物件:filewriter

是否要提高效率:是,加入緩衝區bufferedwriter

filewriter fw = new filewriter("b.txt");

bufferedwriter bufw= new bufferedwriter(fw);

eg2:將鍵盤錄入的資料儲存到乙個檔案中

源:inputstream,reader

是純文字:reader

裝置:鍵盤,對應的物件是system.in,system.in是位元組流,

為了操作鍵盤資料方便,將位元組流轉換成字元流處理最方便。

所以用字元流reader中的轉換流:inputstreamreader;只讀取位元組時不需要轉換。

inputstreamreader isr = new inputstreamreader(system.in);

需要提高效率嗎?需要,則使用緩衝物件:

bufferedreader bufr = new bufferedreader(isr);

目的:outputstream,writer

是純文字,writer

裝置:硬碟,乙個檔案:filewriter

filewriter fw = new filewriter("c.txt");

需要提高效率?需要,用bufferedwriter

bufferedwriter bufw = new bufferedwriter(fw);

想要把錄入的資料按照指定的編碼表存入文字中:

目的:outputstream,writer

是純文字,writer

裝置:硬碟,乙個檔案:filewriter

但是指定編碼表只有轉換流可以指定。

所以使用的物件是:outputstreamwriter

而該轉換流物件要接收乙個位元組輸出流,而且是可以操作檔案的位元組輸出流:fileoutputstream

outputstreamwriter osw = new outputstreamwriter(new fileoutputstream("d.txt"),"utf-8");

需要提高效率?需要,用bufferedwriter

bufferedwriter bufw = new bufferedwriter(osw);

所以,轉換流什麼時候用:字元和位元組之間的橋梁,通常涉及到字元編碼轉換時,需要用到轉換流

流物件太多,容易混淆,通過兩個明確來完成

1,明確源和目的

源:輸入流:inputstream,   reader

目的:輸出流:outputstream, writer

2,明確操作的資料是否是純文字

是:字元流

否:位元組流

3,當體系明確後,再明確要使用哪個具體的物件

通過裝置來區分:

源裝置:記憶體,硬碟,鍵盤

目的:記憶體,硬碟,控制台

eg1:將乙個文字檔案中資料儲存到另乙個檔案中;檔案複製

源:inputstream reader

是操作文字:reader

reader 體系中可以操作檔案的物件:filereader

是否要提高效率:是,加入緩衝區bufferedreader

filereader fr = new filereader("a.txt");

bufferedreader bufr = new bufferedreader(fr);

目的:outputstream writer

是操作文字:writer

裝置:硬碟,乙個檔案

writer體系中可以操作檔案的物件:filewriter

是否要提高效率:是,加入緩衝區bufferedwriter

filewriter fw = new filewriter("b.txt");

bufferedwriter bufw= new bufferedwriter(fw);

eg2:將鍵盤錄入的資料儲存到乙個檔案中

源:inputstream,reader

是純文字:reader

裝置:鍵盤,對應的物件是system.in,system.in是位元組流,

為了操作鍵盤資料方便,將位元組流轉換成字元流處理最方便。

所以用字元流reader中的轉換流:inputstreamreader;只讀取位元組時不需要轉換。

inputstreamreader isr = new inputstreamreader(system.in);

需要提高效率嗎?需要,則使用緩衝物件:

bufferedreader bufr = new bufferedreader(isr);

目的:outputstream,writer

是純文字,writer

裝置:硬碟,乙個檔案:filewriter

filewriter fw = new filewriter("c.txt");

需要提高效率?需要,用bufferedwriter

bufferedwriter bufw = new bufferedwriter(fw);

想要把錄入的資料按照指定的編碼表存入文字中:

目的:outputstream,writer

是純文字,writer

裝置:硬碟,乙個檔案:filewriter

但是指定編碼表只有轉換流可以指定。

所以使用的物件是:outputstreamwriter

而該轉換流物件要接收乙個位元組輸出流,而且是可以操作檔案的位元組輸出流:fileoutputstream

outputstreamwriter osw = new outputstreamwriter(new fileoutputstream("d.txt"),"utf-8");

需要提高效率?需要,用bufferedwriter

bufferedwriter bufw = new bufferedwriter(osw);

所以,轉換流什麼時候用:字元和位元組之間的橋梁,通常涉及到字元編碼轉換時,需要用到轉換流

----------------------asp.net+unity開發、.net培訓、期待與您交流! ----------------------詳細請檢視:www.itheima.com

流操作的基本規律

流操作的基本規律 最痛苦的就是流物件有很多,不知道該用哪乙個。通過三個明確來完成。1,明確源和目的。源 輸入流。inputstream reader 目的 輸出流。outputstream writer。2,操作的資料是否是純文字。是 字元流。不是 位元組流。3,當體系明確後,在明確要使用哪個具體的...

流操作的基本規律

目的 是為了開發時可以明確具體使用哪個流物件更為合適 明確一 資料的源或目的 匯 源 對應的就是讀取,讀取對應就是兩個體系 inputstream reader 目的 對應的就是寫入 寫入對應的兩個體系 outputstream writer 明確二 操作的資料是否為純文字。源 是純文字檔案,rea...

黑馬程式設計師 IO 流操作規律

asp.net unity開發 net培訓 期待與您交流!流操作基本規律 一 兩個明確 1 明確源和目的 源 輸入流。inputstream位元組流 reader 字元流 目的 輸出流 outputstream 位元組流 writer 字元流 2 操作的資料是否是純文字 是,即字元流 如果裝置是鍵盤...