日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

IO概述、异常、File文件类_DAY19

發(fā)布時(shí)間:2023/12/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IO概述、异常、File文件类_DAY19 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

IO概述:

??? 操作數(shù)據(jù)的工具

??? IO流,即數(shù)據(jù)流,數(shù)據(jù)像水流一樣通過(guò)IO工具進(jìn)行傳輸。

??? 程序? <IO>?? 硬盤? ??

??? 絕對(duì)路徑與相對(duì)路徑

1:異常(理解)

??? (1)就是程序的非正常情況。

?????? 異常相關(guān)操作:

?????????? 創(chuàng)建異常對(duì)象(JDK已定義的異常會(huì)自動(dòng)創(chuàng)建對(duì)象,自定義異常需要手動(dòng)創(chuàng)建)

?????????? 拋出異常(JDK已有定義的異常會(huì)自動(dòng)拋出異常,自定義異常需要手動(dòng)拋出)

?????? 處理異常:

?????????? 程序員在有異常拋出時(shí),異常的處理方法有兩種:(1)將異常捕獲并處理(2)聲明拋出異常

?

??? (2)異常的繼承體系結(jié)構(gòu):

?????? Throwable:

?????????? |--Error 嚴(yán)重的問(wèn)題,不需要處理的。

?????????? |--Exception 非RuntimeException必須進(jìn)行處理。兩種方案,點(diǎn)擊鼠標(biāo)即可。

????????????? |--RuntimeException 運(yùn)行時(shí)期異常,需要修正代碼。

??? (3)jvm的默認(rèn)處理方式:

?????? 默認(rèn)情況下,jvm會(huì)采用默認(rèn)處理方案:

?????????? 把異常的全路徑名稱,原因,及位置等信息顯示出來(lái)。

?????? 注意:

?????????? 如果是jvm的默認(rèn)處理方式,那么,它會(huì)在出問(wèn)題的地方結(jié)束。

??? (4)我們自己的處理方案:

?????? A:處理方式之一:使用捕獲

?????? try...catch...finally

?????????? 基本格式:

????????????? try {

????????????????? 可能有問(wèn)題的代碼;

????????????? }catch(異常對(duì)象) {

????????????????? 對(duì)問(wèn)題的處理;

????????????? }finally {?? //一定會(huì)執(zhí)行的代碼

????????????????? 釋放資源;

????????????? }

?

?????????? 變形格式:

????????????? try...catch

????????????? try...catch...catch

????????????? try...catch...catch...finally

????????????? try...finally

?????????? 多異常處理方式:

????????????? 分別捕獲分別處理,每個(gè)try對(duì)應(yīng)一個(gè)catch? (? cn.itcast2.demo4)

package cn.itcast2;import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;/** 多個(gè)異常的捕獲處理:* 1:分別捕獲分別處理,每個(gè)try對(duì)應(yīng)一個(gè)catch*/ public class Demo4 {public static void main(String[] args) {DateFormat df = new SimpleDateFormat("yyyy-MM-dd");try {Date parse = df.parse("2008-08-08");System.out.println(parse);} catch (ParseException e) {System.out.println("您的日期格式有誤,請(qǐng)換成2008-08-08的格式!");}int a = 10;int b = 0; try {System.out.println(a/b);} catch (Exception e) {System.out.println("您的計(jì)算中,有數(shù)學(xué)錯(cuò)誤,請(qǐng)更換數(shù)字");}System.out.println("================");}} View Code2

????????????? 分別捕獲分別處理,一個(gè)try對(duì)應(yīng)所有catch? (cn.itcast2.demo5)? ,注意:大的異常不能在前邊捕獲

package cn.itcast2;import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;/** 多個(gè)異常的捕獲處理:* 2:分別捕獲分別處理,一個(gè)try對(duì)應(yīng)所有catch,注意:前邊的異常一定要小于后邊的異常* 3:一次捕獲共同處理,不能同時(shí)捕獲大的異常與小的異常*/ public class Demo5 {public static void main(String[] args) {DateFormat df = new SimpleDateFormat("yyyy-MM-dd");int a = 10;int b = 0; //2:格式2//報(bào)錯(cuò),前邊的異常不小于后邊的異常 // try { // Date parse = df.parse("2008,08-08"); // System.out.println(parse); // System.out.println(a/b); // } catch (ParseException e) { // System.out.println("您的日期格式有誤,請(qǐng)換成2008-08-08的格式!"); // } catch (ArithmeticException e) { // System.out.println("您的計(jì)算中,有數(shù)學(xué)錯(cuò)誤,請(qǐng)更換數(shù)字"); // }try {Date parse = df.parse("2008,08-08");System.out.println(parse);System.out.println(a/b);//前邊的異常一定要小于后邊的異常} catch (ParseException e) {System.out.println("您的日期格式有誤,請(qǐng)換成2008-08-08的格式!");} catch (Exception e) {System.out.println("您的計(jì)算中,有數(shù)學(xué)錯(cuò)誤,請(qǐng)更換數(shù)字");} System.out.println("try后的代碼繼續(xù)執(zhí)行...");//格式3:try{Date parse = df.parse("2008-08-08");System.out.println(parse);System.out.println(a/b);}catch(ParseException|ArithmeticException e) { //一次捕獲共同處理,不能同時(shí)捕獲大的異常與小的異常 System.out.println(e);}System.out.println(true||false);System.out.println(true|false);} } View Code

????????????? 一次捕獲共同處理

???????????????????? 注意:不能同時(shí)捕獲大的異常與小的異常

?????????? 注意:

????????????? 如果多個(gè)異常,有子父關(guān)系,父異常一定要放在最后。

????????????? 如果多個(gè)異常,是平級(jí)關(guān)系,它們存在的位置沒(méi)有順序關(guān)系。

?

????????????? 執(zhí)行順序:

????????????????? 在try里面的代碼會(huì)按照從上往下執(zhí)行,一旦發(fā)生問(wèn)題,

????????????????? 就會(huì)產(chǎn)生一個(gè)異常對(duì)象,去和catch里面進(jìn)行匹配。

????????????????? 有對(duì)應(yīng)的匹配,就走對(duì)應(yīng)的處理方案。

????????????????? 沒(méi)有,就找父匹配,有就走對(duì)應(yīng)的處理方案。

????????????????? 如果找不到,那么就由jvm采用默認(rèn)處理方案。

?

?????????? JDK7的新特性:在處理多個(gè)平級(jí)的異常的時(shí)候

????????????? catch(ExceptionA | ExceptionB | ExceptionC ... e) {

?????????????

????????????? }

?

?????? B:異常處理方式之二:使用聲明拋出

?????? throws

?* ??????? throws:用于聲明函數(shù)拋出異常。用于函數(shù)聲明。

?* ??????? 多個(gè)異常可以同時(shí)聲明拋出,用逗號(hào)分隔。? (cn.itcast2.demo7)

package cn.itcast2;import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat;/** 異常處理方式:聲明異常拋出* throws:用于聲明函數(shù)拋出異常。用于函數(shù)聲明。* 是異常對(duì)象的處理方式之一。* 多個(gè)異常可以同時(shí)聲明拋出,用逗號(hào)分隔。*/ public class Demo7 {public static void main(String[] args) {int a = 10,b=0;try {method(a,b);} catch (ArithmeticException e) {e.printStackTrace();}System.err.println("--------------");try {method2(a,b);} catch (ArithmeticException e) {e.printStackTrace();} catch (ParseException e) {e.printStackTrace();}System.err.println("--------------");}public static void method(int a,int b) throws ArithmeticException{System.err.println(a/b);}public static void method2(int a,int b) throws ArithmeticException, ParseException{ //多個(gè)異常可以同時(shí)聲明拋出,用逗號(hào)分隔 method(a,b);DateFormat df = new SimpleDateFormat("yyyy-MM-dd");df.parse("a");}}/** 程序執(zhí)行結(jié)果 java.lang.ArithmeticException: / by zeroat cn1.Demo7.method(Demo7.java:35)at cn1.Demo7.main(Demo7.java:18) -------------- java.lang.ArithmeticException: / by zeroat cn1.Demo7.method(Demo7.java:35)at cn1.Demo7.method2(Demo7.java:39)at cn1.Demo7.main(Demo7.java:25) -------------- */ View Code

??? (5)自定義異常

?????? 如果涉及其他需求,JDK沒(méi)有提供相應(yīng)的異常對(duì)象,則可以自己定義異常。

?????? 定義格式:繼承Exception或者RuntimeException。同時(shí)需要帶參的構(gòu)造方法,用于接收異常信息。

?????? public class MyException extends Exception{

?????????? public MyException(String message){

????????????? super(message);

?????????? }

?????? }

?????? 例子:cn.itcast2.demo8?? cn.itcast2.MyException.java

package cn.itcast2; /** 自定義異常:* 補(bǔ)充java沒(méi)有提供的異常類*/ public class Demo8 {public static void main(String[] args) {//規(guī)定,一個(gè)班最多只能有100個(gè)人。int classNumber = 101;//方式一:捕獲異常if(classNumber>100) {try {throw new MyException("班級(jí)人數(shù)大于100了,不能大于100!");//手動(dòng)拋出自定義異常類對(duì)象} catch (MyException e) {System.err.println("=======");System.err.println(e.getMessage()+".........");e.printStackTrace();System.err.println("=======");}}System.err.println("-------------");try {method();} catch (MyException e) {e.printStackTrace();}}//方式二:聲明拋出異常public static void method() throws MyException { //聲明拋出異常//規(guī)定,一個(gè)班最多只能有100個(gè)人。int classNumber = 101;if(classNumber>100) {throw new MyException("班級(jí)人數(shù)大于100了,不能大于100!");//手動(dòng)拋出自定義異常類對(duì)象 }System.err.println("-------------");} } View Code package cn.itcast2; /** 自定義異常:超過(guò)100就不行*/ public class MyException extends Exception {public MyException(String message) {super(message);}} View Code

??? (6)面試題:

?????? A:Exception和RuntimeException的區(qū)別?

?????????? Exception:分為編譯期異常和運(yùn)行期異常。編譯期異常是必須處理的。否則,代碼不能編譯通過(guò)。

?????????? RuntimeException:運(yùn)行期異常,不需要編寫異常處理代碼,但是可能需要修正程序參數(shù)或者邏輯代碼。

?????? B:throws和throw的區(qū)別?

?????????? throws:在方法聲明上,后面跟的是異常類名。

?????????? ?????? throws聲明后面如果是一個(gè)運(yùn)行時(shí)期異常,調(diào)用者不需要處理。這種方式?jīng)]有意義。

?????????? ?????? throws聲明后面跟的是一個(gè)編譯期異常,調(diào)用者是必須處理的。

?????????? throw:在方法體中,后面跟的是異常對(duì)象名。

?????????? ?????? throw后面如果拋出的是運(yùn)行時(shí)期異常對(duì)象,那么方法上是不需要進(jìn)行聲明的。

?????????? ?????? throw后面如果拋出的是編譯時(shí)期異常對(duì)象,那么,一般在方法聲明上都是要用throws聲明該方法有異常。

?????? C:finally的面試題

?????????? a:final,finally,finalize的特點(diǎn)及區(qū)別?

????????????? final:最終的意思,可以修飾類,成員變量,成員方法

????????????????? 修飾類,類不能被繼承

???????? ???????? 修飾變量,變量是常量

????????????????? 修飾方法,方法不能被重寫

????????????? finally:是異常處理的一部分,用于釋放資源。

???????????????????? 一般來(lái)說(shuō),代碼肯定會(huì)執(zhí)行,特殊情況:在執(zhí)行到finally之前jvm退出了

????????????? finalize:是Object類的一個(gè)方法,用于垃圾回收

?????????? b:如果catch里面有return,請(qǐng)問(wèn)finally里面的代碼還執(zhí)行嗎?

?????????? ? 如果執(zhí)行,是在return前,還是后呢?

?????????? ? 會(huì)執(zhí)行,在前,確切的說(shuō)在中間,先執(zhí)行return的代碼,再執(zhí)行finally里面的代碼,最后return

?????????? c:寫一個(gè)程序,測(cè)試finally里面的操作對(duì)結(jié)果沒(méi)有影響。

????????????? finally一般只用于釋放資源。cn.itcast.demo9

?????? D:jvm的默認(rèn)處理方式? 打印,宕機(jī)

??? (7)對(duì)于異常,怎么選擇呢?

?????? A:能夠自己處理的時(shí)候,盡量自己處理。

?????? B:在方法里面盡量不要拋。

?????? C:將來(lái)在實(shí)際開(kāi)發(fā)中,我們會(huì)把不同的異常給出不同的界面進(jìn)行顯示給用戶。

??? (8)子父關(guān)系中的異常處理?

?????? class Fu {

?????????? public void show()? throws Exception? {

?????????? }

?????? }

?

?????? class Zi extends Fu {

?????????? public void show() throws RuntimeException {

?????????? }

?????? }

?

?????? class Demo {

?????????? public static void main(String[] args) {

?????????? }

?????? }

?

?????? 子的重寫方法中不能拋出比父更大的異常。

?

2:File(理解)

??? (1)因?yàn)橛脖P上對(duì)數(shù)據(jù)的存儲(chǔ)基本上都是以文件存在。為了方便對(duì)文件或者文件夾進(jìn)行操作。

??? ?? java就提供了一個(gè)類File供我們使用。本質(zhì)上是對(duì)路徑的封裝。

??? (2)File類構(gòu)造方法:

?????? A:File file = new File("d:\\a.txt");

?????? B:File file = new File("d:\\","a.txt");

?????? C:File file = new File("d:");

?????? ? File file2 = new File(file,"a.txt");

?

?????? 以上三種格式等價(jià)。

??? (3)File類的功能:

?????? A:創(chuàng)建功能

?????????? 創(chuàng)建文件:createNewFile()

?????????? 創(chuàng)建文件夾:mkdir(),mkdirs()

?????????? 例子:cn.itcast3.demo2

package cn.itcast3;import java.io.File; import java.io.IOException;/** File類的普通方法:* 1:public boolean createNewFile() throws IOException 創(chuàng)建文件* 2:public boolean mkdir() 創(chuàng)建文件夾* 注意:現(xiàn)有文件夾,后有文件* 3:public boolean mkdirs() 創(chuàng)建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。 將所有父目錄全部創(chuàng)建。*/ public class Demo2 {public static void main(String[] args) throws IOException {//創(chuàng)建文件夾與文件對(duì)象File dir = new File("z");File file = new File("z/z.txt");//2:創(chuàng)建文件夾zboolean mkdir = dir.mkdir();System.out.println(mkdir);//1:創(chuàng)建文件z.textboolean createNewFile = file.createNewFile();System.out.println(createNewFile);//層級(jí)創(chuàng)建文件File dir2 = new File("c/a/d/e/w/d/f/t/z");boolean mkdir2 = dir2.mkdirs();System.out.println(mkdir2);}} View Code

?????????? 注意:僅僅根據(jù)后綴名并不能判斷是文件還是文件夾。

?????? B:刪除功能

?????????? 刪除文件或者文件夾:delete()

?????????? 注意:

????????????? A:刪除一個(gè)帶內(nèi)容的目錄,必須先刪除內(nèi)容,在刪除目錄。

????????????? B:java中的刪除不走回收站。

?????? C:判斷功能

?????????? 判斷file是否存在:exists()

?????????? 判斷file是否是文件:isFile()

?????????? 判斷file是否是文件夾:isDirectory()

?????????? 例子:cn.itcast3.demo3-myself.text

import java.io.File; import java.io.IOException;/** File類的普通方法:* 1:public boolean delete() 文件可以直接刪除,文件夾刪除時(shí),必須保證里邊已經(jīng)沒(méi)有內(nèi)容了* 2:public boolean isHidden()測(cè)試此抽象路徑名指定的文件是否是一個(gè)隱藏文件* 3:public boolean isFile() 判斷是否是文件* 4:public boolean isDirectory() 判斷是否是文件夾* 5:public boolean exists() 測(cè)試此抽象路徑名表示的文件或目錄是否存在。*/ public class Demo3 {public static void main(String[] args) throws IOException {//創(chuàng)建文件夾File dir = new File("b");dir.mkdir();//需要先創(chuàng)建文件夾,然后創(chuàng)建文件File file = new File("b/b.txt");file.createNewFile();/* //先刪除文件,再刪除文件夾System.out.println(file.delete());System.out.println(dir.delete());*///是否是隱藏文件 System.out.println(file.isHidden());//是否是文件 System.out.println(file.isFile());//是否是文件夾 System.out.println(dir.isDirectory());// 測(cè)試此抽象路徑名表示的文件或目錄是否存在。 System.out.println(file.exists());}} View Code

?????? D:重名名功能

?????????? 把舊名稱改變?yōu)樾旅Q:renameTo()

????????????? 注意:路徑問(wèn)題。

?????????? 重命名涉及兩個(gè)File對(duì)象。

?????????? 將File1重命名成File2

????????????? 在同一目錄下:

????????????????? file2文件已經(jīng)存在,重命名失敗

????????????????? file2文件不存在,重命名成功

????????????? 在不同目錄下:

????????????????? file2文件已經(jīng)存在,重命名失敗

????????????????? file2文件不存在,剪切成功

?????????? 例子:cn.itcast3.demo4

package cn.itcast3;import java.io.File;/** File類的普通方法:* public boolean renameTo(File dest) 同目錄:重命名/不同目錄:剪切加重命名*/ public class Demo4 {public static void main(String[] args) {File file = new File("a.txt");File file2 = new File("b.txt");File file3 = new File("d/c.txt");boolean renameTo = file.renameTo(file2);System.out.println(renameTo);boolean renameTo2 = file2.renameTo(file3);System.out.println(renameTo2);}} View Code

?????? E:獲取功能

?????????? 基本獲取

????????????? 獲取絕對(duì)路徑:getAbsolutePath()

????????????? 獲取相對(duì)路徑:getPath()

????????????? 獲取名稱:getName()

????????????? 獲取大小:length()? //英文字母1個(gè)字節(jié),中文字母兩個(gè)字節(jié)

????????????? 獲取最后修改時(shí)間:lastModified()

????????????? 例子:cn.itcast3.demo5

package cn.itcast3;import java.io.File; import java.util.Date;/** File類的普通方法:* 1:public String getAbsolutePath() : 返回此抽象路徑名的絕對(duì)路徑名字符串。* 2:public String getPath(): 將此抽象路徑名轉(zhuǎn)換為一個(gè)路徑名字符串。* 3:public String getParent():返回此抽象路徑名父目錄的路徑名字符串;如果此路徑名沒(méi)有指定父目錄,則返回 null。* 4:public File getParentFile():返回此抽象路徑名父目錄的抽象路徑名;如果此路徑名沒(méi)有指定父目錄,則返回 null。* 5:public String getName():返回由此抽象路徑名表示的文件或目錄的名稱。* 6:public long length() 返回:文件存儲(chǔ)內(nèi)容的長(zhǎng)度* 7:public long lastModified():返回上一次修改時(shí)間毫秒值*/ public class Demo5 {public static void main(String[] args) {File file = new File("a.txt");File file2 = new File("D:/Lesson/JAVA/JAVA基礎(chǔ)/北京/150315/day19/code/day19/a.txt");//1 System.out.println(file.getAbsolutePath());System.out.println(file2.getAbsolutePath());System.out.println("===========");//2 System.out.println(file.getPath());System.out.println(file2.getPath());System.out.println("===========");//3String p = file.getParent();System.out.println(p);String p2 = file2.getParent();System.out.println(p2);System.out.println("===========");//4File pFile = file.getParentFile();System.out.println(pFile);File pFile2 = file2.getParentFile();System.out.println(pFile2);System.out.println("===========");//5String name = file.getName();System.out.println(name);String name2 = file2.getName();System.out.println(name2);System.out.println("===========");//6 System.out.println(file.length());//7System.out.println(file.lastModified());//返回毫秒值1428829519158LSystem.out.println(new Date(file.lastModified()));//返回日期格式 }} View Code

?????????? 高級(jí)獲取

????????????? 獲取指定目錄下所有文件或者文件夾的名稱數(shù)組:list()

????????????? 獲取指定目錄下所有文件或者文件夾的File數(shù)組:listFiles()

????????????? 返回所有盤符:listRoots()

????????????? 例子1:cn.itcast3.demo6

package cn.itcast3;import java.io.File; import java.util.Arrays;/** 文件高級(jí)獲取:* 1:public static File[] listRoots() 獲取所有盤符的文件對(duì)象* 2:public String[] list() 這些字符串指定此抽象路徑名表示的目錄中的文件和目錄。即該File下的所有文件及目錄(字符串)。* 3:public File[] listFiles() 返回一個(gè)抽象路徑名數(shù)組,這些路徑名表示此抽象路徑名表示的目錄中的文件。 即File下的所有文件及目錄(File對(duì)象)。*/ public class Demo6 {public static void main(String[] args) {//1:File[] listRoots = File.listRoots();System.out.println(Arrays.toString(listRoots));//2:File dir = new File("src/cn/itcast");String[] list = dir.list();System.out.println(Arrays.toString(list));//3:File[] listFiles = dir.listFiles();System.out.println(Arrays.toString(listFiles));for (File file : listFiles) {System.out.println(file.getName());}}} View Code

????????????? 例子2:cn.itcast3.demo7:獲取src\cn\itcast目錄下所有.java結(jié)尾的文件(注意是文件 ,不是文件夾)

package cn.itcast3;import java.io.File;/** 獲取src\cn\itcast目錄下所有.java結(jié)尾的文件*/ public class Demo7 {public static void main(String[] args) {//創(chuàng)建文件對(duì)象,表示指定的文件夾File dir = new File("src/cn/itcast");//方法一:(如果有文件夾是.java結(jié)尾的,則不能過(guò)濾該文件夾) // //獲取該文件夾下的所有File對(duì)象字符串表現(xiàn)(文件,文件夾) // String[] list = dir.list(); // //獲取該數(shù)組中的每一個(gè)元素 // for (String fileordir : list) { // boolean endsWith = fileordir.endsWith(".java"); // if(endsWith) { // System.out.println(fileordir); // } // }//方法二://獲取該文件夾下的所有File對(duì)象對(duì)象表現(xiàn)(文件,文件夾)File[] listFiles = dir.listFiles();//獲取該數(shù)組中的每一個(gè)元素for (File fileordir : listFiles) {//先判斷是否為文件if(fileordir.isFile()) {boolean endsWith = fileordir.getName().endsWith(".java");if(endsWith) {System.out.println(fileordir.getName());}}}}} View Code

????????????? 文件過(guò)濾器:

????????????????? 接口 FilenameFilter? 重寫accept()方法?

????????????????? 方式1,定義類實(shí)現(xiàn)FilenameFilter,然后用file.list(該類的實(shí)例對(duì)象)?

????????????????? 方式2,匿名內(nèi)部類

????????????? 例子:cn.itcast3.demo8

package cn.itcast3;import java.io.File; import java.io.FilenameFilter; import java.util.Arrays;/** File的方法:* public String[] list(FilenameFilter filter)* public File[] listFiles(FilenameFilter filter)* // 3:public File(File parent,String child)* 文件過(guò)濾器* FilenameFilter:* boolean accept(File dir, String name) 將list/listFiles方法所在目錄下所有的File對(duì)象都判斷一次是否符合條件。符合條件返回true,不符合,返回false* * 獲取src\cn\itcast目錄下所有.java結(jié)尾的文件,要求使用過(guò)濾器*/ public class Demo8 {public static void main(String[] args) {//創(chuàng)建文件對(duì)象,表示指定的文件夾File dir = new File("src/cn/itcast");//獲取該文件夾下的所有符合條件的File對(duì)象字符串表現(xiàn)(文件,文件夾)String[] list = dir.list(new FilenameFilter(){ //匿名內(nèi)部類 @Overridepublic boolean accept(File dir, String name) {File thisFile = new File(dir,name);if(thisFile.isFile()){if(name.endsWith(".java")) {return true;}}return false;}});System.out.println(Arrays.toString(list));} } View Code

?---------------------------------------------------------------------------------------------------------------

例子程序:

1、返回某文件夾下所有以java結(jié)尾的文件

a)使用list方法

b)使用listFiles方法

c)使用list方法加文件過(guò)濾器

?d)使用listFiles方法加文件過(guò)濾器

import java.io.File; import java.io.FilenameFilter; import java.util.Arrays;/*** 7:返回某文件夾下所有以java結(jié)尾的文件。* a)使用list方法* b)使用listFiles方法* c)使用list方法加文件過(guò)濾器* d)使用listFiles方法加文件過(guò)濾器*/ public class Test7 {public static void main(String[] args) {//a)使用list方法 (不能判斷是文件還是文件夾)/* File file=new File("src/cn1");String[] strings=file.list();for(String s:strings){if(s.endsWith(".java")){System.out.println(s);}}*///使用listFiles方法/* File file = new File("src/cn1");File[] files = file.listFiles();for (File f : files) {if (f.isFile()) {if(f.getName().endsWith(".java")){System.out.println(f.getName());}}}*///c)使用list方法加文件過(guò)濾器/* File file=new File("src/cn1");String[] strings=file.list(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {File file1=new File(dir,name);if(file1.isFile()){if(file1.getName().endsWith(".java")){return true;}}return false;}});System.out.println(Arrays.toString(strings));*///d)使用listFiles方法加文件過(guò)濾器/*File file=new File("src/cn1");File[] files=file.listFiles(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {File file1=new File(dir,name);if(file1.isFile()){if(file1.getName().endsWith(".java")){return true;}}return false;}});for(File f:files){System.out.println(f.getName());}*/} } View Code

2、完成一個(gè)文件的創(chuàng)建,判斷,刪除。

import java.io.File; import java.io.IOException;/*** 3:完成一個(gè)文件的創(chuàng)建,判斷,刪除。*/ public class Test3 {public static void main(String[] args) throws IOException {File file=new File("src/cn2/a.test");//文件的創(chuàng)建 file.createNewFile();//判斷 System.out.println(file.isFile());System.out.println(file.isDirectory());//刪除 file.delete();} } View Code

3、完成文件的創(chuàng)建、重命名、刪除。

import java.io.File; import java.io.IOException;/*** 5:完成文件的創(chuàng)建、重命名、刪除。*/ public class Test5 {public static void main(String[] args) throws IOException {//文件的創(chuàng)建File file=new File("d.txt");file.createNewFile();//重命名File file1=new File("src/cn1/e.txt");file.renameTo(file1);//刪除 file1.delete();} } View Code

4、完成多級(jí)目錄的創(chuàng)建。

import java.io.File; import java.io.IOException;/*** 6:完成多級(jí)目錄的創(chuàng)建。*/ public class Test6 {public static void main(String[] args) throws IOException {File dir=new File("src/a/b/c/d/e");dir.mkdirs();File file=new File("src/a/a.txt");file.createNewFile();}} View Code

?

總結(jié)

以上是生活随笔為你收集整理的IO概述、异常、File文件类_DAY19的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久操精品视频 | 免费在线看黄视频 | 成年网站免费在线观看 | 美腿丝袜亚洲色图 | 96毛片| 影音先锋毛片 | www.97ai.com| 美丽的姑娘观看在线播放 | 欧美成人久久久免费播放 | 免费观看在线高清 | 日韩午夜在线视频 | 精品日韩在线播放 | 日韩不卡一二三区 | 国产三级小视频 | 天堂在线8 | 欧美s码亚洲码精品m码 | 91免费视频网址 | 天天av天天干| 涩涩资源网 | 99热这里只有精品在线观看 | 欧美日韩国产图片 | 日本一区二区精品视频 | 欧美日韩在线不卡 | 天天干,夜夜爽 | 青青草视频在线免费观看 | 久久免费国产 | 特黄aaaaaaaaa毛片免费视频 | 区一区二在线观看 | 欧美30p | 美女一区二区三区视频 | 日韩va视频| 九色视频国产 | 国产免费av片在线 | 亚洲日本欧美 | 久久伊人一区二区 | 久久久久成人网 | 欧美中文字幕在线 | 色妇av | 日夜夜操 | 91精东传媒理伦片在线观看 | 欧美成人a∨高清免费观看 国产精品999视频 | 在线1区 | 国产suv精品一区 | 99热热热热| 日韩成人精品在线 | 特级免费毛片 | 美女黄色一级视频 | va免费视频| av片在线免费观看 | 欧美黄片一区二区三区 | 人妻精品久久久久中文 | 国产ts在线 | 亚洲中国色老太 | 色com| 欧美熟妇另类久久久久久多毛 | 天堂av在线免费 | 国产精品免费大片 | 日韩精品久久一区二区 | 国产精品一卡二卡三卡 | 国产97自拍 | 成人性视频在线 | 免费人成在线观看视频播放 | 日本四级电影 | 久久久久久久久久久久97 | 一区二区视频在线 | 欧美大喷水吹潮合集在线观看 | 久久久久久一 | 精品一区二区三区久久 | 国产av第一区 | 成年人网站免费视频 | 狠狠干狠狠爱 | 一区二区三区四区视频 | 欧美日日 | 尤物视频免费观看 | 久久午夜鲁丝片午夜精品 | 日韩av在线免费播放 | 久久午夜国产精品 | 脱美女衣服亲摸揉视频 | 91在线精品入口 | 在线麻豆 | 国产欧美一区二区三区免费看 | 亚洲精品成人无码毛片 | 在线国产中文字幕 | 欧美日韩一区在线播放 | 91国偷自产一区二区三区老熟女 | 日本视频免费看 | 日剧大尺度床戏做爰 | 好吊色网站| 亚洲色图一区二区三区 | 亚洲拍拍视频 | 插骚 | 视频在线观看一区 | 日韩一区二区三区在线免费观看 | 九色91av| 大陆明星乱淫(高h)小说 | 国产精品麻豆一区二区 | 色综合加勒比 | 丰满少妇一级 | 欧美少妇一区 |