2022-07-18 day 22

一 峦椰、File

概念:File可以代表一個目錄或者一個文件,并不能代表文件的內(nèi)容

文件和流的區(qū)別:File關(guān)注的是文件本身的特征嫩舟,如名稱键袱、路徑、修改時間、大小。

流關(guān)注的是文件的內(nèi)容。

File基本的操作

1. 常見構(gòu)造方法

| File(String pathname) | 建立一個以pathname為路徑的File對象召廷, pathname可以是相對路徑凳厢,也可以

是絕對路徑。|

| File(String parent,String child) | 建立一個以parent加上child為路徑的File對象 |

| File(File parent,String child) | 建立一個以parent加上child為路徑的File對象 |

注意:文件的路徑如果考慮跨平臺竞慢,就使用File.seperator

相對路徑:javase程序中先紫,相對參照點為項目目錄 src/test.項目目錄下的src/test

絕對路徑:e:/test

2. 創(chuàng)建文件操作

mkdir:創(chuàng)建單層目錄 dir1/dir2:必須保證dir1是存在的,才能成功創(chuàng)建dir2

mkdirs:創(chuàng)建層級目錄 dir1/dir2:如果dir1不存在筹煮,會先創(chuàng)建dir1,再創(chuàng)建dir2

createNewFile:創(chuàng)建文件 dir1/a :必須保證dir1是存在的遮精,否則,會報系統(tǒng)找不到指定的路徑的異常

3. 文件的常用讀操作(文件名稱败潦、文件名稱)

exists() //文件或者目錄是否存在

isFile() //是否是文件

isDirectory() //是否是目錄

getName() //取文件或者目錄的名字

getPath() //取文件或者目錄的路徑

getAbsolutePath() //取文件絕對路徑

lastModified() //最后修改日期

length() //文件或者目錄的字節(jié)大小

list()//獲得當前File對象所表示目錄下的文件和目錄名稱本冲,返回String[]類型的數(shù)據(jù)。

listFiles()//獲得當前File對象所表示目錄下的文件和目錄劫扒,返回File[]類型的數(shù)據(jù)檬洞。

代碼實例

4. 修改文件名稱

注意:修改的新文件名需要是不存在的 ,如果修改前后的目錄一致,那就是重命名的效果沟饥,如果修改前后目

錄不一致添怔,相當于會刪除舊目錄中的文件,以新的名稱出現(xiàn)在新目錄中

5. 刪除文件

6. 刪除文件夾

遞歸:

1贤旷、自己調(diào)用自己

2广料、必須要一個條件

二、流的概念

File類關(guān)心的是磁盤上存儲的文件位置和名稱等幼驶,而流是指程序運行中的數(shù)據(jù)通信信道艾杏,當然流類所關(guān)心的是文

件的內(nèi)容。

流的分類

根據(jù)流向分為:輸入流盅藻,輸出流

根據(jù)傳輸單位:字節(jié)流购桑,字符流

根據(jù)是否和數(shù)據(jù)源可以直接交互:節(jié)點流,處理流

節(jié)點流:可以和數(shù)據(jù)源直接交互萧求,F(xiàn)ileInputStream,FileOutPutStream,FileWriter,FileReader

處理流:需要連接嵌套其它的流使用,BufferedReader,BufferedWriter

流的四個根類

1. InputStream(字節(jié)輸入流)

FileInputStream:節(jié)點流其兴,字節(jié)輸入流,按照字節(jié)為單位讀文件夸政,文件復(fù)制

ObjectInputStream:處理流,對象輸入流榴徐,需要嵌套一個字節(jié)輸入流進行使用守问,如

FileInputStream,反序列化

2. OutputStream(字節(jié)輸出流)

FileOutputStream:節(jié)點流坑资,字節(jié)輸出流耗帕,按照字節(jié)為單位寫,文件復(fù)制

ObjectOutPutStream:處理流袱贮,對象輸出流仿便,需要嵌套一個字節(jié)輸出流,如FileOutputStream進行

使用,序列化

3. Reader(字符輸入流)

FileReader:節(jié)點流嗽仪,針對文件的字符輸入流荒勇,以字符為單位讀文件,存在亂碼問題闻坚,不能直接按行

進行讀

BufferedReader:處理流沽翔,帶緩沖區(qū)的字符輸入流,以行為單位讀文件 readLine:返回值為null表示

讀取結(jié)束

InputStreamReader:處理流窿凤,轉(zhuǎn)換流(可以將字節(jié)流轉(zhuǎn)換為字符流),需要嵌套節(jié)點流使用仅偎,讀文

件的指定字符集編碼,解決亂碼問題

4. Writer

FileWriter:節(jié)點流雳殊,針對文件的字符輸出流橘沥,以字符為單位寫文件,存在亂碼問題夯秃,不能直接按行

BufferedWriter :處理流座咆,帶緩沖區(qū)的字符輸出流,按照行寫字符寝并,newLine

OutPutStreamWriter:處理流箫措,轉(zhuǎn)換流(可以將字節(jié)流轉(zhuǎn)換為字符流),需要嵌套節(jié)點流使用衬潦,寫

文件的時候指定字符集編碼斤蔓,解決亂碼問題

三、字節(jié)流

1. FileInputStream

常用api

FileInputStream是InputStream的子類镀岛。

FileInputStream是讀取文件的字節(jié)輸入流弦牡。

FileInputStream常用的構(gòu)造方法:

FileInputStream(File file)

FileInputStream(String filename)

FileInputStream覆蓋實現(xiàn)了父類如下方法:

int available()

void close()

結(jié)構(gòu):

int read():一次讀取1個字節(jié),返回值表示讀取的一個字節(jié)的數(shù)據(jù)(一個字節(jié)的數(shù)據(jù)不一定表示一個字符的

編碼)漂羊,返回值為-1表示讀取結(jié)束

2. FileOutputStream

FileOutputStream是OutputStream的子類

FileOutputStream是寫入文件的字節(jié)輸出流

FileOutputStream常用的構(gòu)造方法:

FileOutputStream(File file)

FileOutputStream(String filename)

FileOutputStream(File file,boolean append)

FileOutputStream(String filename,boolean append)

FileOutputStream覆蓋實現(xiàn)了父類如下方法:

void close()

void flush()

void write(int b) :寫入一個字節(jié)的數(shù)據(jù)驾锰,參數(shù)就是要寫入的數(shù)據(jù)的編碼

void write(byte[] b) :將數(shù)組中的數(shù)據(jù)寫到文件中,數(shù)組中存放的是字符的編碼

void write(byte[] b,int off,int len):將數(shù)組指定位置指定長度的數(shù)據(jù)寫入的文件中

結(jié)構(gòu):

3. 文件復(fù)制

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末走越,一起剝皮案震驚了整個濱河市椭豫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌旨指,老刑警劉巖赏酥,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谆构,居然都是意外死亡裸扶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門搬素,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呵晨,“玉大人魏保,你說我怎么就攤上這事∶溃” “怎么了谓罗?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長餐塘。 經(jīng)常有香客問我妥衣,道長,這世上最難降的妖魔是什么戒傻? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任税手,我火速辦了婚禮,結(jié)果婚禮上需纳,老公的妹妹穿的比我還像新娘芦倒。我一直安慰自己,他們只是感情好不翩,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布兵扬。 她就那樣靜靜地躺著,像睡著了一般口蝠。 火紅的嫁衣襯著肌膚如雪器钟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天妙蔗,我揣著相機與錄音傲霸,去河邊找鬼。 笑死眉反,一個胖子當著我的面吹牛昙啄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寸五,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼梳凛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了梳杏?” 一聲冷哼從身側(cè)響起韧拒,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎十性,沒想到半個月后叭莫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡烁试,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了拢肆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片减响。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡靖诗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出支示,到底是詐尸還是另有隱情刊橘,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布颂鸿,位于F島的核電站促绵,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嘴纺。R本人自食惡果不足惜败晴,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望栽渴。 院中可真熱鬧尖坤,春花似錦、人聲如沸闲擦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽墅冷。三九已至纯路,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寞忿,已是汗流浹背驰唬。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留罐脊,地道東北人定嗓。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像萍桌,于是被迫代替她去往敵國和親宵溅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容