java入門 -- Java I/O(一) File類詳解

說明:參考代碼部分的時候魂莫,請忽略異常處理語句挡育。I/O中異常的有效處理辦法請看【I/O異常處理】章節(jié)

/*

* I/O流(input/ output)

* 作用:解決設(shè)備與設(shè)備之間的數(shù)據(jù)傳輸問題腾誉,例如:

* -- 硬盤數(shù)據(jù)讀取到內(nèi)存

* -- 鍵盤數(shù)據(jù)讀取到內(nèi)存中

* -- 將內(nèi)存數(shù)據(jù)寫到硬盤中

*

* 應(yīng)用場景:

* -- 報表導(dǎo)入

* -- 上傳圖片

* -- 數(shù)據(jù)下載

*

* 數(shù)據(jù)以文件的形式保存在內(nèi)存上幔摸,可以永久保存废睦,java中用一個File類來描述文件或是文件夾

*

* File類的構(gòu)造方法

* -- File(String pathNma)

* 通過自定【文件】或【文件夾】的路徑來創(chuàng)建一個FIle對象施符,將字符串路徑轉(zhuǎn)換成抽象的路徑

*

* -- File(File parent, String child)

* 根據(jù)抽象父路徑和字符串文件或是文件夾名穿件一個File對象

*

* -- File(String parent, String child)

* 根據(jù)字符串父路徑和字符串文件或是文件夾名穿件一個File對象

*

* 注意:Windows機器的目錄分隔符是:\ ; linux機器上的文件分隔符是/

* File中提供了File.separator常量來獲取當前平臺的分隔符

* windows上\和/都可以作為文件分隔符,使用/的時候用一個皆可以了秀姐,用\需要兩個慈迈;

*

*

* 絕對路徑和相對路徑

* 絕對路徑:從根目錄開始定位的路徑

* 相對路徑:資源文件相對于當前程序所在的路徑

* -- . 當前路徑

* -- .. 上級路徑

*

*

* File類常見方法

* 1. 創(chuàng)建

* createNewFile()? 在定位的路徑下面創(chuàng)建一個空文件,創(chuàng)建成果返回true,如果文件存在不創(chuàng)建返回false

* mkdir() 創(chuàng)建單級文件夾

* mkdirs() 創(chuàng)建多級別文件夾

* renameTo(File dest) 重命名文件或是文件夾省有,如果目標文化和當前文件在同一文件夾下痒留,就是重命名

* 如果不在同一個路徑下,就是剪切的作用蠢沿。

*

*

* 2. 刪除

* delete() 刪除一個文件夾或是文件,刪除成功返回true,刪除失敗返回false,不能刪除非空文件夾

*? deleteOnExit() jvm退出的時候刪除文件伸头,退出時自動刪除,一般用于刪除零時文件

*

* 3.判斷

* exists() 判斷文件或是文件夾是否存在

* isFile() 是否是文件

* isDirectory 是否是文件夾

* isHidden() 是否是一個隱藏文件/文件夾

* isAbaolute() 抽象路徑是否為絕對路徑

*

* 4.獲取

* getName() 獲取文件或是文件夾的名稱舷蟀,不包含上級目錄

* getPath() 獲取絕對路徑恤磷,可以是相對路徑,但是目錄要指定

* getAbsolute() 獲取文件的絕對路徑野宜,與文件是否存在沒關(guān)系

*? length() 獲取文件的大猩ú健(字節(jié)),如果文件不存在返回0l,如果是文件夾返回0l

*? getParent() 返回此抽象路徑名父目錄的路徑名字符串,如果此路徑?jīng)]有指定父路徑匈子,返回null

*? lastModified() 返回最后一次唄修改的時間(毫秒)

*

*? 5. 文件夾操作

*? static File[] listRoots() 獲取所有的根目錄河胎,windows中就是所有的盤符

*? list() 列出所有的目錄下的文件,包括隱藏文件和子文件虎敦,不會迭代列出,返回一個路徑數(shù)組游岳,如果是目錄是文件則返回null

*? list(FIleNameFilter filter)

*? listFiles() 返回File對象的文件數(shù)組

*? listFiles(filenameFIlter filter)

*

*? 6.其他操操作

*? listFiles(FilenameFilter filter) 返回當前目錄中符合過濾條件的文件或是字子目錄政敢,如果目錄是文件,則返回null

*? list(FileNameFIlter filter) 返回當前目錄中符合過濾條件的文件或是字子目錄胚迫,如果目錄是文件喷户,則返回null

*

*/

package com.michael.jdk15;

import java.io.File;

import java.io.FilenameFilter;

import java.io.IOException;

//定義一個文件名過濾器

class MyFilter implements FilenameFilter{

@Override

public boolean accept(File dir, String name) {

// TODO Auto-generated method stub

//dir 文件目錄

// name //文件名

return name.endsWith(".java");

}

}

public class Demo8 {

public static void main(String[] args){

File file = new File("c:\\");

File file1 = new File("c:\\Users\\c.txt");

System.out.println("存在嗎?" + file.exists()); //判斷文件是否存在

System.out.println("文件夾存在嗎?" + file1.exists());

File file2 = new File("c:\\");

File file3 = new File(file2, "c.txt");

System.out.println("文件存在嗎?" + file3.exists());

System.out.println("絕對路徑" + file.getAbsolutePath()); //絕對路徑

try {

System.out.println("創(chuàng)建成功了嗎" + file1.createNewFile());

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

String[] fileName = file.list();

for(String f:fileName){

System.out.println(f);

}

//列出所有的.java文件

File filePath = new File("E:\\JBASE\\day19\\src\\com\\michael\\jdk15");

File[] fileArr = filePath.listFiles(); //獲取所有的子文件(夾)

for(File f : fileArr){

//方式一:使用字符串篩選

/*if(f.getName().endsWith(".java")){ //判斷文件名是否以.java結(jié)尾

System.out.println(f.getName()); //輸出文件名

}*/

//方式二:使用正則篩選

if(f.isFile()&&f.getName().matches(".+\\.java"));

System.out.println(f.getName());

}

}

//分類格式化輸出文件(夾):

public static void listFile(File dir){

File[] files = dir.listFiles();

System.out.println("文件:");

for(File fileItem : files){

if(fileItem.isFile()){

System.out.println("\t" + fileItem.getName());

}

}

System.out.println("文件夾:");

for(File fileItem : files){

if(fileItem.isDirectory()){

System.out.println("\t" + fileItem.getName());

}

}

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市晌区,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌通贞,老刑警劉巖朗若,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異昌罩,居然都是意外死亡哭懈,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門茎用,熙熙樓的掌柜王于貴愁眉苦臉地迎上來遣总,“玉大人,你說我怎么就攤上這事轨功⌒癯猓” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵古涧,是天一觀的道長垂券。 經(jīng)常有香客問我,道長羡滑,這世上最難降的妖魔是什么菇爪? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮柒昏,結(jié)果婚禮上凳宙,老公的妹妹穿的比我還像新娘。我一直安慰自己职祷,他們只是感情好氏涩,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著有梆,像睡著了一般削葱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上淳梦,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天析砸,我揣著相機與錄音,去河邊找鬼爆袍。 笑死首繁,一個胖子當著我的面吹牛作郭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弦疮,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼夹攒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了胁塞?” 一聲冷哼從身側(cè)響起咏尝,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎啸罢,沒想到半個月后编检,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡扰才,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年允懂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衩匣。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蕾总,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出琅捏,到底是詐尸還是另有隱情生百,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布柄延,位于F島的核電站置侍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拦焚。R本人自食惡果不足惜蜡坊,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赎败。 院中可真熱鬧秕衙,春花似錦、人聲如沸僵刮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搞糕。三九已至勇吊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窍仰,已是汗流浹背汉规。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人针史。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓晶伦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親啄枕。 傳聞我的和親對象是個殘疾皇子婚陪,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

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