Java中重要基礎之io流知識總結(jié)

Java中重要基礎之io流知識總結(jié)

長沙中公優(yōu)就業(yè)      2022-03-17 12:20:01     7

Java中重要基礎之io流知識總結(jié),Java中IO流體系是很重要的基礎,我相信一開始接觸Java,很多人最頭疼的就是這些了,搞不清時,真的會把自己繞進去。在程序中所有

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細介紹

Java中IO流體系是很重要的基礎,我相信一開始接觸Java,很多人最頭疼的就是這些了,搞不清時,真的會把自己繞進去。在程序中所有數(shù)據(jù)的傳輸又都是以流的方式進行的,為了能搞清楚這部分的知識,有必要重新整理一下Java基礎,為以后的編程打下良好的基礎。

什么是IO流?

IO指的是Input/Output,IO流:輸入輸出流。我們稱為數(shù)據(jù)流。

在Java程序中,對于數(shù)據(jù)的輸入/輸出操作都是以流的方式進行的。

JDK中提供了各種各樣的流類,用以獲取不同種類的數(shù)據(jù)。

常見的2種IO流分類:

按流向分:

  • 輸入流:程序可以從中讀取數(shù)據(jù)的流
  • 輸出流:程序能向其中寫入數(shù)據(jù)的流

按數(shù)據(jù)傳輸單位分:

  • 字節(jié)流:以字節(jié)為單位傳輸數(shù)據(jù)的流
  • 字符流:以字符為單位傳輸數(shù)據(jù)的流

為了能更好的了解Java中的IO流,下面用一張圖來說明:

IO流的基類和分類

下面用一張表格詳細講解IO流的分類:

以上流都是繼承四個抽象基類:

字節(jié)輸入流:InputStream字符輸入流:Reader

字節(jié)輸出流:OutputStream字符輸出流:Writer

為了更好的學習Java流體系,下面主要先從四個抽象基類開始分析。

InputStream和OutputSteam

InputStream字節(jié)輸入流:繼承自InputStream的流都是用于向程序中輸入數(shù)據(jù)的。

OutputStream字節(jié)輸出流:繼承自OutputStream的流是程序用于向外輸出數(shù)據(jù)的。

下面舉個例子來說,繼承自這兩個流的文件字節(jié)操作流FileInputStream和FileOutputStream的使用。

例子:現(xiàn)在有個需求是要將一份音樂文件從e:src復制到e:dest。

public?static?void?main(String[]?args)?{String?srcPath?=?"E:srcmedia.mp4";String?destDir?=?"E:dest";File?destDirFile?=?new?File(destDir);if?(!destDirFile.exists())?{destDirFile.mkdir();}FileInputStream?fInputStream?=?null;FileOutputStream?fOutputStream?=?null;//從Src讀:輸入流//寫入dest:輸出流//數(shù)據(jù)類型:視頻,只能用字節(jié)流try?{fInputStream?=?new?FileInputStream(srcPath);fOutputStream?=?new?FileOutputStream(destDirFile.getAbsolutePath()+File.separator+"cp_media.mp4");//循環(huán)通過輸入流,讀取數(shù)據(jù),邊讀邊寫byte[]?buff?=?new?byte[100];int?len=-1;while?((len=in.read(buff,0,buff.length))!=-1)?{//返回值:是真實讀取到的字節(jié)數(shù),如果到了流的末尾,返回-1//通過輸出流寫出fOutputStream.write(buff,0,len);//推薦使用這個方法,讀到多少字節(jié)就寫入多少字節(jié)}}?catch?(IOException?e)?{//?TODO?Auto-generated?catch?blocke.printStackTrace();}finally{try?{if?(fInputStream?!=?null)?{fInputStream.close();}if?(fOutputStream?!=?null)?{fOutputStream.close();}}?catch?(IOException?e)?{//?TODO?Auto-generated?catch?blocke.printStackTrace();}}}

Reader 和Writer

Reader 字符輸入流,繼承自Reader的流都是用于向程序中輸入數(shù)據(jù)的。

Writer 字符輸出流,繼承Writer的流都是向程序中輸出的。

下面同樣舉個例子來說,繼承自這兩個流的文件字符操作流FileWriter和FileReader的使用。

例子:用FileWriter和FileReader完成文件的復制[把D盤中的Stream.txt復制到C盤的根目錄下]

public?static?void?main(String[]?args)?{?File?filesrc=new?File("D:iotest2Stream.txt");?File?filedest=new?File("C:"+"copy.txt");??try?{?Reader?in=new?FileReader(filesrc);??Writer?out=new?FileWriter(filedest);?char[]cs=new?char[1024];?int?len=-1;//實際的位置?while((len=in.read(cs,0,cs.length))!=-1){?out.write(cs,0,len);?}?out.close();?in.close();?}?catch?(IOException?e)?{??e.printStackTrace();?}?}

Java視頻相關(guān)內(nèi)容

Java IO流的分類:http://www.bjpowernode.com/tutorial_java_advance/653.html

以上就是長沙中公優(yōu)就業(yè)java培訓機構(gòu)的小編針對“Java中重要基礎之io流知識總結(jié)”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。

培訓啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹慎!任何要求預付定金、匯款等方式均存在風險,謹防上當。