JAVA SE.docx

上传人:b****5 文档编号:30228960 上传时间:2023-08-07 格式:DOCX 页数:30 大小:21.15KB
下载 相关 举报
JAVA SE.docx_第1页
第1页 / 共30页
JAVA SE.docx_第2页
第2页 / 共30页
JAVA SE.docx_第3页
第3页 / 共30页
JAVA SE.docx_第4页
第4页 / 共30页
JAVA SE.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

JAVA SE.docx

《JAVA SE.docx》由会员分享,可在线阅读,更多相关《JAVA SE.docx(30页珍藏版)》请在冰豆网上搜索。

JAVA SE.docx

JAVASE

JavaSE02Day01

Top

1.FileUtils——deleteDirectory方法实现

2.FileUtils——listFile(File,String[],boolean)

3.FileUtils——copyFile方法的实现

1FileUtils——deleteDirectory方法实现

1.1问题

删除指定目录及其包含的所有内容。

1.2方案

新建类FileUtils类,在类中添加方法deleteDirectory(Filedir),该方法的参数dir表示要删除的目录:

1.publicstaticvoiddeleteDirectory(Filedir)

2.throwsIOException{}

在deleteDirectory方法中添加判断dir目录是否存在的代码:

1.if(!

dir.exists()){

2.        thrownewIllegalArgumentException("目录:

"

3.+dir+"不存在");

4.}

在deleteDirectory方法中添加判断dir是否为目录的代码:

1.if(!

dir.isDirectory()){

2.        thrownewIllegalArgumentException(dir+"不是目录");

3.}

使用File类的listFiles(),获取一个目录下的所有文件和目录:

1.File[]subs=dir.listFiles();

递归删除dir及dir的子目录下的所有文件:

1.if(subs!

=null&&subs.length>0){

2.            for(Filesub:

subs){

3.                if(sub.isDirectory()){

4.                    deleteDirectory(sub);

5.                }else{

6.                    System.out.println(sub);

7.                    if(!

sub.delete()){

8.                        thrownewIOException("无法删除文件:

"+sub);

9.                    }

10.                }

11.            }

12.        }

删除dir目录:

1.if(!

dir.delete()){

2.    thrownewIOException("无法删除目录:

"+dir);

3.}

1.3实现

系统代码实现如下:

1.publicstaticvoiddeleteDirectory(Filedir)

2.throwsIOException{

3.        if(!

dir.exists()){

4.            thrownewIllegalArgumentException("目录:

"

5.+dir+"不存在");

6.        }

7.        if(!

dir.isDirectory()){

8.            thrownewIllegalArgumentException(dir+"不是目录");

9.        }

10.        File[]subs=dir.listFiles();

11.        if(subs!

=null&&subs.length>0){

12.            for(Filesub:

subs){

13.                if(sub.isDirectory()){

14.                    deleteDirectory(sub);

15.                }else{

16.                    System.out.println(sub);

17.                    if(!

sub.delete()){

18.                        thrownewIOException("无法删除文件:

"+sub);

19.                    }

20.                }

21.            }

22.        }

23.        System.out.println(dir);

24.        if(!

dir.delete()){

25.            thrownewIOException("无法删除目录:

"+dir);

26.        }

27.    }

1.4扩展

列出指定目录下(包括其子目录)的所有文件。

在FileUtils类中添加listDirectory(Filedir)方法:

1.publicstaticvoidlistDirectory(Filedir)

2.throwsIOException{}

使用递归列出指定dir目录及其子目录下的所有文件:

1.File[]subs=dir.listFiles();

2.        if(subs!

=null&&subs.length>0){

3.            for(Filesub:

subs){

4.                if(sub.isDirectory()){

5.                    listDirectory(sub);

6.                }else{

7.                    System.out.println(sub);

8.                }

9.            }

10.        }

listDirectory方法完整代码如下:

1.    publicstaticvoidlistDirectory(Filedir)

2.throwsIOException{

3.        if(!

dir.exists()){

4.            thrownewIllegalArgumentException("目录:

"

5.+dir+"不存在");

6.        }

7.        if(!

dir.isDirectory()){

8.            thrownewIllegalArgumentException(dir+"不是目录");

9.        }

10.        File[]subs=dir.listFiles();

11.        if(subs!

=null&&subs.length>0){

12.            for(Filesub:

subs){

13.                if(sub.isDirectory()){

14.                    listDirectory(sub);

15.                }else{

16.                    System.out.println(sub);

17.                }

18.            }

19.        }

20.    }

FileUtils类的代码如下:

1.publicclassFileUtils{

2.    /**

3.    *列出指定目录下(包括其子目录)的所有文件

4.    *@paramdir

5.    *@throwsIOException

6.    */

7.    publicstaticvoidlistDirectory(Filedir)

8.throwsIOException{

9.        if(!

dir.exists()){

10.            thrownewIllegalArgumentException("目录:

"+

11.dir+"不存在");

12.        }

13.        if(!

dir.isDirectory()){

14.            thrownewIllegalArgumentException(dir+"不是目录");

15.        }

16.        File[]subs=dir.listFiles();

17.        if(subs!

=null&&subs.length>0){

18.            for(Filesub:

subs){

19.                if(sub.isDirectory()){

20.                    listDirectory(sub);

21.                }else{

22.                    System.out.println(sub);

23.                }

24.            }

25.        }

26.

27.    }

28.    /**

29.    *删除指定目录及其包含的所有内容

30.    *@paramdir

31.    *@throwsIOException

32.    */

33.    publicstaticvoiddeleteDirectory(Filedir)

34.throwsIOException{

35.        if(!

dir.exists()){

36.            thrownewIllegalArgumentException("目录:

"+

37.dir+"不存在");

38.        }

39.        if(!

dir.isDirectory()){

40.            thrownewIllegalArgumentException(dir+"不是目录");

41.        }

42.        File[]subs=dir.listFiles();

43.        if(subs!

=null&&subs.length>0){

44.            for(Filesub:

subs){

45.                if(sub.isDirectory()){

46.                    deleteDirectory(sub);

47.                }else{

48.                    System.out.println(sub);

49.                    if(!

sub.delete()){

50.                        thrownewIOException("无法删除文件:

"+sub);

51.                    }

52.                }

53.            }

54.        }

55.        System.out.println(dir);

56.        if(!

dir.delete()){

57.            thrownewIOException("无法删除目录:

"+dir);

58.        }

59.    }

60.}

2FileUtils——listFile(File,String[],boolean)

2.1问题

列出指定目录下指定扩展名的所有文件。

用户可以指定多个扩展名;用户也可以选择是否列出子目录下的文件。

2.2方案

在FileUtils类中添加方法listFile(Filedir,FileFilterff,booleanrecursive)方法,把dir目录中经过ff过滤的文件添加到List的对象中存储,使用recursive判断是否过滤子目录中的文件添加到List的对象中。

1.    privatestaticListlistFile(Filedir,FileFilterff,

2.            booleanrecursive){

3.        Listlist=newArrayList();

4.        File[]subs=dir.listFiles(ff);

5.        if(subs!

=null&&subs.length>0){

6.            for(Filesub:

subs){

7.                if(sub.isFile()){//如果是文件

8.                    list.add(sub);//添加文件到list中

9.                }elseif(recursive){//是否获取子目录中的文件

10.//添加子目录中的经过过滤的所有文件添加到list

11.                    list.addAll(listFile(sub,ff,true));

12.                }

13.            }

14.        }

15.        returnlist;

16.    }

在FileUtils类中添加方法listFile(File,String[],boolean),dir表示指定的目录,extendsions表示多个扩展名,recursive表示是否列出子目录中的文件:

1.publicstaticListlistFile(Filedir,

2.finalString[]extensions,booleanrecursive){

3.}

判断扩展名信息,如果无扩展名信息,FileFilter的accept方法返回true,相当于不进行过滤:

1.if(extensions==null||extensions.length==0){

2.    ff=newFileFilter(){

3.        @Override

4.        publicbooleanaccept(Filepathname){

5.                    returntrue;

6.        }

7.    };

8.}

扩展名有信息的情况,使用FileFilter类的accept方法进行文件过滤:

1.ff=newFileFilter(){

2.                @Override

3.                publicbooleanaccept(Filepathname){

4.                    if(pathname.isDirectory())

5.                        returntrue;

6.                    Stringname=pathname.getName();

7.                    for(Stringext:

extensions){

8.                        if(name.endsWith(ext)){

9.                            returntrue;

10.                        }

11.                    }

12.                    returnfalse;

13.                }

14.            };

15.        }

2.3实现

系统代码实现如下所示:

1.privatestaticListlistFile(Filedir,FileFilterff,

2.            booleanrecursive){

3.        Listlist=newArrayList();

4.        File[]subs=dir.listFiles(ff);

5.        if(subs!

=null&&subs.length>0){

6.            for(Filesub:

subs){

7.                if(sub.isFile()){//如果是文件

8.                    list.add(sub);//添加文件到list中

9.                }elseif(recursive){//是否去除子目录中的文件

10.//添加子目录中的经过过滤的所有文件添加到list

11.                    list.addAll(listFile(sub,ff,true));

12.                }

13.            }

14.        }

15.        returnlist;

16.    }

17.publicstaticListlistFile(Filedir,finalStringfilename,

18.            booleanrecursive){

19.        if(!

dir.exists()){

20.            thrownewIllegalArgumentException("目录:

"+dir+

21."不存在");

22.        }

23.

24.        if(!

dir.isDirectory()){

25.            thrownewIllegalArgumentException(dir+"不是目录");

26.        }

27.        FileFilterff=null;

28.        if(filename==null||filename.length()==0){

29.            ff=newFileFilter(){

30.                @Override

31.                publicbooleanaccept(Filepathname){

32.                    returntrue;

33.                }

34.            };

35.        }else{

36.            ff=newFileFilter(){

37.                @Override

38.                publicbooleanaccept(Filepathname){

39.                    if(pathname.isDirectory())

40.                        returntrue;

41.                    Stringname=pathname.getName();

42.                    if(name.indexOf(filename)!

=-1)

43.                        returntrue;

44.                    else

45.                        returnfalse;

46.                }

47.            };

48.        }

49.        returnlistFile(dir,ff,recursive);

50.    }

2.4扩展

列出指定目录下指定扩展名的所有文件。

用户只能指定一个扩展名;用户也可以选择是否列出子目录下的文件,过滤出来的所有文件用Java中的容器进行存储。

在FileUtils类中添加重载的listFile(Filedir,finalStringfilename,booleanrecursive)方法:

1.    publicstaticListlistFile(Filedir,

2.finalStringfilename,booleanrecursive){

3.        if(!

dir.exists()){

4.            thrownewIllegalArgumentException("目录:

"+dir

5.+"不存在");

6.        }

7.        if(!

dir.isDirectory()){

8.            thrownewIllegalArgumentException(dir+"不是目录");

9.        }

10.        FileFilterff=null;

11.        if(filename==null||

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1