這篇文章主要介紹“Java IO流文件管理分析”,在日常操作中,相信很多人在Java IO流文件管理分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”Java IO流文件管理分析”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)專注于甌海企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城網(wǎng)站建設(shè)。甌海網(wǎng)站建設(shè)公司,為甌海等地區(qū)提供建站服務(wù)。全流程按需定制,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
1、分類角度
流的方向
輸入流:從數(shù)據(jù)源中讀取數(shù)據(jù)到應(yīng)用中的流;
輸出流:從應(yīng)用中將數(shù)據(jù)寫入到目的地的流;
流數(shù)據(jù)類型
字節(jié)流:以字節(jié)形式來讀寫的流,標(biāo)識(shí)是名稱以Stream結(jié)尾;
字符流:以字符形式來讀寫的流,標(biāo)識(shí)是名稱以Writer、Reader結(jié)尾;
管道流:以數(shù)據(jù)塊為單位來處理,緩沖區(qū)就是用于讀寫的數(shù)據(jù)塊;
流的角色
節(jié)點(diǎn)流:可以從一個(gè)節(jié)點(diǎn)或者向一個(gè)節(jié)點(diǎn)讀/寫數(shù)據(jù)的流,也被稱為低級(jí)流;
處理流:對(duì)存在的流進(jìn)行連接或者封裝、封裝后的流來進(jìn)行讀/寫、也被稱為高級(jí)流。
2、API體系
5個(gè)核心類ObjectOutputStream:File、OutputStream、InputStream、Writer、Reader;
1關(guān)鍵接口:Serializable;
1、字節(jié)輸入流
InputStream:字節(jié)輸入流是所有字節(jié)輸入流的父類、為所有字節(jié)輸入流提供一個(gè)標(biāo)準(zhǔn)、和基本的與讀取字節(jié)有關(guān)的方法及簡單的實(shí)現(xiàn)。
FileInputStream:文件字節(jié)輸入流以字節(jié)的形式將文件中數(shù)據(jù)讀取到應(yīng)用中;
BufferedInputStream:緩沖字節(jié)輸入流,提供緩沖功能,提高效率;
ByteArrayInputStream:字節(jié)數(shù)組輸入流用于讀取其內(nèi)置緩存字節(jié)數(shù)組中的字節(jié);
PipedInputStream:管道字節(jié)輸入流必須與PipedOutputStream結(jié)合使用,用于線程之間的通信;
FilterInputStream:過濾器字節(jié)輸入流,重寫InputStream方法,為字節(jié)輸入處理流提供擴(kuò)展;
DataInputStream:數(shù)據(jù)字節(jié)輸入流,一般與DataOutputStream結(jié)合使用;
ObjectInputStream:對(duì)象字節(jié)輸入流,與ObjectOutputStream結(jié)合使用;
2、字節(jié)輸出流
OutputStream:字節(jié)輸出流,InputStream作用一樣,為所有字節(jié)輸出流提供一個(gè)標(biāo)準(zhǔn)、定義了一些基本輸出字節(jié)的方法與簡單實(shí)現(xiàn);
FileOutputStream:文件字節(jié)輸出流,將字節(jié)寫入指定目標(biāo)的文件源中;
BufferedOutputStream:緩沖字節(jié)輸出流,提供緩沖功能、提高效率;
ByteArrayOutputStream:字節(jié)數(shù)組輸出流,將字節(jié)寫入到其本身所帶的一個(gè)內(nèi)置緩存字節(jié)數(shù)組中;
PipedoutputStream:管道字節(jié)輸出流,必須與PipedInputStream結(jié)合使用、用于線程之間的通信;
FilterOutputStream:過濾字節(jié)輸出流,為字節(jié)輸出處理流提供擴(kuò)展;
DataOutputStream: 數(shù)據(jù)字節(jié)輸出流,一般與DataInputStream結(jié)合使用;
ObjectOutputStream:對(duì)象字節(jié)輸出流,通常與ObjectInputStream結(jié)合使用;
PrintStream:字節(jié)打印流,字節(jié)輸出流進(jìn)行裝飾、提供打印各種數(shù)據(jù)類型的功能;
3、字符輸入流
Reader:字符輸入流,為所有字符輸入流提供一個(gè)標(biāo)準(zhǔn)、只有基本的讀取方法的定義和簡單的實(shí)現(xiàn);
InputStreamReader:字節(jié)轉(zhuǎn)換流,將字節(jié)流轉(zhuǎn)換成字符流,并且可以指定字節(jié)轉(zhuǎn)成字符時(shí)使用的編碼;
BufferedReader:緩沖字符輸入流,為字符輸入流提供緩沖功能、提高效率;
CharArrayReader:字符數(shù)組輸入流,將其內(nèi)置字符緩存數(shù)組中的數(shù)據(jù)讀取到應(yīng)用中;
PipedReader:管道字符輸入流,與PipedWriter結(jié)合使用、用于線程之間的通信;
FilterReader:過濾字符輸入流,為字符輸入流提供擴(kuò)展;
FileReader:文件字符輸入流,字符的形式讀取文件中的內(nèi)容;
4、字符輸出流
Writer:字符輸出流,所有字符輸出流提供一個(gè)標(biāo)準(zhǔn),基本寫入的方法和簡單的實(shí)現(xiàn);
OutputStreamWriter:字節(jié)輸出轉(zhuǎn)換流,用于將字節(jié)輸出流轉(zhuǎn)化成字符輸出流??梢灾付ň幋a轉(zhuǎn)化;
BufferedWriter:緩存字符輸出流,提供緩沖功能、提高效率;
CharArrayWriter:字符輸出流,用于將字符寫入其內(nèi)置緩存字符數(shù)組中;
PipedWriter:管道字符輸出流,與PipedReader結(jié)合使用,用于線程之間的通信;
FileWriter:文件字符輸出流,用于將字符寫入到指定文件中;
PrintWriter:字符打印流,將各種數(shù)據(jù)以字符的形式打?。?/p>
1、構(gòu)造方法
File(String pathname):指定文件或者文件夾的路徑創(chuàng)建一個(gè)File文件;
File(File parent,String child):根據(jù)parent抽象路徑名和child路徑名字符創(chuàng)建新的File實(shí)例;
2、路徑問題
絕對(duì)路徑:該文件在硬盤上的完整路徑。絕對(duì)路徑一般都是以盤符開頭的。
相對(duì)路徑: 相對(duì)路徑就是資源文件相對(duì)于當(dāng)前程序所在的路徑。
. 當(dāng)前路徑
.. 上一級(jí)路徑
3、文件的創(chuàng)建
createNewFile():在指定位置創(chuàng)建一個(gè)空文件,成功返回true,已存在就不創(chuàng)建然后返回false;
mkdir():在指定位置創(chuàng)建目錄,這只會(huì)創(chuàng)建最后一級(jí)目錄,上級(jí)目錄不存在就拋異常;
mkdirs():在指定位置創(chuàng)建目錄,這會(huì)創(chuàng)建路徑中所有不存在的目錄;
4、刪除文件
delete() 刪除文件或者一個(gè)空的文件夾,如果文件夾且不為空,則不能刪除,成功返回true,失敗返回false;
5、判斷方法
exists():文件或文件夾是否存在;
isFile():是否是一個(gè)文件,如果不存在,則始終為false;
isDirectory():是否是一個(gè)目錄,如果不存在,則始終是false;
6、獲取文件信息
getName():獲取文件或文件夾名稱,不包含上級(jí)路徑;
getPath():返回絕對(duì)路徑,可以是相對(duì)路徑,但是目錄要指定
字節(jié)流讀取的是文件中的二進(jìn)制數(shù)據(jù),不會(huì)自動(dòng)轉(zhuǎn)為可以看懂的字符;字符流:把讀到的數(shù)據(jù)進(jìn)行對(duì)應(yīng)的編碼與解碼。
到此,關(guān)于“Java IO流文件管理分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!