流操作的基本規律:
最痛苦的就是流物件有很多,不知道該用哪乙個。
通過三個明確來完成。
1,明確源和目的。
源:輸入流。inputstream reader
目的:輸出流。outputstream writer。
2,操作的資料是否是純文字。
是:字元流。
不是:位元組流。
3,當體系明確後,在明確要使用哪個具體的物件。
通過裝置來進行區分:
源裝置:記憶體,硬碟。鍵盤
目的裝置:記憶體,硬碟,控制台。
1,將乙個文字檔案中資料儲存到另乙個檔案中。複製檔案。
源:因為是源,所以使用讀取流。inputstream reader
是不是操作文字檔案。
是!這時就可以選擇reader
這樣體系就明確了。
接下來明確要使用該體系中的哪個物件。
明確裝置:硬碟。乙個檔案。
reader體系中可以操作檔案的物件是 filereader
是否需要提高效率:是!。加入reader體系中緩衝區 bufferedreader.
filereader fr = new filereader("a.txt");
bufferedreader bufr = new bufferedreader(fr);
目的:outputstream writer
是否是純文字。
是!writer。
裝置:硬碟,乙個檔案。
writer體系中可以操作檔案的物件filewriter。
是否需要提高效率:是!。加入writer體系中緩衝區 bufferedwriter
filewriter fw = new filewriter("b.txt");
bufferedwriter bufw = new bufferedwriter(fw);
---------------------------------------
2,需求:將鍵盤錄入的資料儲存到乙個檔案中。
這個需求中有源和目的都存在。
那麼分別分析
源:inputstream reader
是不是純文字?是!reader
裝置:鍵盤。對應的物件是system.in.
不是選擇reader嗎?system.in對應的不是位元組流嗎?
為了操作鍵盤的文字資料方便。轉成字元流按照字串操作是最方便的。
所以既然明確了reader,那麼就將system.in轉換成reader。
用了reader體系中轉換流,inputstreamreader
inputstreamreader isr = new inputstreamreader(system.in);
需要提高效率嗎?需要!bufferedreader
bufferedreader bufr = new bufferedreader(isr);
目的:outputstream writer
是否是存文字?是!writer。
裝置:硬碟。乙個檔案。使用 filewriter。
filewriter fw = new filewriter("c.txt");
需要提高效率嗎?需要。
bufferedwriter bufw = new bufferedwriter(fw);
**************
擴充套件一下,想要把錄入的資料按照指定的編碼表(utf-8),將資料存到檔案中。
目的:outputstream writer
是否是存文字?是!writer。
裝置:硬碟。乙個檔案。使用 filewriter。
但是filewriter是使用的預設編碼表。gbk.
但是儲存時,需要加入指定編碼表utf-8。而指定的編碼表只有轉換流可以指定。
所以要使用的物件是outputstreamwriter。
而該轉換流物件要接收乙個位元組輸出流。而且還可以操作的檔案的位元組輸出流。fileoutputstream
outputstreamwriter osw = new outputstreamwriter(new fileoutputstream("d.txt"),"utf-8");
需要高效嗎?需要。
bufferedwriter bufw = new bufferedwriter(osw);
所以,記住。轉換流什麼使用。字元和位元組之間的橋梁,通常,涉及到字元編碼轉換時,
需要用到轉換流。
//鍵盤的最常見寫法。
bufferedreader bufr = new bufferedreader(new inputstreamreader(system.in));
流操作的基本規律
目的 是為了開發時可以明確具體使用哪個流物件更為合適 明確一 資料的源或目的 匯 源 對應的就是讀取,讀取對應就是兩個體系 inputstream reader 目的 對應的就是寫入 寫入對應的兩個體系 outputstream writer 明確二 操作的資料是否為純文字。源 是純文字檔案,rea...
IO流操作基本規律總結
1 明確源和目的 源 輸入流 inputstream reader 目的 輸出流 outstream writer 2.操作的資料是否是純文字 是 字元流 reader writer 否位元組流 inputstream outputstream 3 體系明確後,要確定使用哪個具體物件 根據裝置分 源...
流物件基本規律
readline方法是位元組流bufferedreader類中的方法 鍵盤錄入的read方法是位元組流inputstream的方法 讀取轉換流 inputstreamreader inputstream 將位元組流物件轉換成字元流物件 寫入轉換流 outputstreamwriter outputs...