您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java IO流文件管理分析”,在日常操作中,相信很多人在Java IO流文件管理分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java IO流文件管理分析”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
1、分類角度
流的方向
輸入流:從數(shù)據(jù)源中讀取數(shù)據(jù)到應(yīng)用中的流;
輸出流:從應(yīng)用中將數(shù)據(jù)寫入到目的地的流;
流數(shù)據(jù)類型
字節(jié)流:以字節(jié)形式來讀寫的流,標(biāo)識是名稱以Stream結(jié)尾;
字符流:以字符形式來讀寫的流,標(biāo)識是名稱以Writer、Reader結(jié)尾;
管道流:以數(shù)據(jù)塊為單位來處理,緩沖區(qū)就是用于讀寫的數(shù)據(jù)塊;
流的角色
節(jié)點(diǎn)流:可以從一個(gè)節(jié)點(diǎn)或者向一個(gè)節(jié)點(diǎn)讀/寫數(shù)據(jù)的流,也被稱為低級流;
處理流:對存在的流進(jìn)行連接或者封裝、封裝后的流來進(jìn)行讀/寫、也被稱為高級流。
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:對象字節(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:對象字節(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)化成字符輸出流。可以指定編碼轉(zhuǎn)化;
BufferedWriter:緩存字符輸出流,提供緩沖功能、提高效率;
CharArrayWriter:字符輸出流,用于將字符寫入其內(nèi)置緩存字符數(shù)組中;
PipedWriter:管道字符輸出流,與PipedReader結(jié)合使用,用于線程之間的通信;
FileWriter:文件字符輸出流,用于將字符寫入到指定文件中;
PrintWriter:字符打印流,將各種數(shù)據(jù)以字符的形式打印;
1、構(gòu)造方法
File(String pathname):指定文件或者文件夾的路徑創(chuàng)建一個(gè)File文件;
File(File parent,String child):根據(jù)parent抽象路徑名和child路徑名字符創(chuàng)建新的File實(shí)例;
2、路徑問題
絕對路徑:該文件在硬盤上的完整路徑。絕對路徑一般都是以盤符開頭的。
相對路徑: 相對路徑就是資源文件相對于當(dāng)前程序所在的路徑。
. 當(dāng)前路徑
.. 上一級路徑
3、文件的創(chuàng)建
createNewFile():在指定位置創(chuàng)建一個(gè)空文件,成功返回true,已存在就不創(chuàng)建然后返回false;
mkdir():在指定位置創(chuàng)建目錄,這只會創(chuàng)建最后一級目錄,上級目錄不存在就拋異常;
mkdirs():在指定位置創(chuàng)建目錄,這會創(chuàng)建路徑中所有不存在的目錄;
4、刪除文件
delete() 刪除文件或者一個(gè)空的文件夾,如果文件夾且不為空,則不能刪除,成功返回true,失敗返回false;
5、判斷方法
exists():文件或文件夾是否存在;
isFile():是否是一個(gè)文件,如果不存在,則始終為false;
isDirectory():是否是一個(gè)目錄,如果不存在,則始終是false;
6、獲取文件信息
getName():獲取文件或文件夾名稱,不包含上級路徑;
getPath():返回絕對路徑,可以是相對路徑,但是目錄要指定
字節(jié)流讀取的是文件中的二進(jìn)制數(shù)據(jù),不會自動(dòng)轉(zhuǎn)為可以看懂的字符;字符流:把讀到的數(shù)據(jù)進(jìn)行對應(yīng)的編碼與解碼。
到此,關(guān)于“Java IO流文件管理分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。