黑马程序员--IO体系(2)

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------


File类概述


流对象可以直接读取和写入文件,但是不能对文件进行其它操作,如查询。

java把File封装成类,提供了许多对文件以及文件夹的操作。

 

File f = new File("d:\\test");//注意,这里创建的是对象,并不是文件,文件可能存在,也可能不存在



 File 类的方法

创建文件和文件夹

boolean createNewFile():   根据文件是否创建成功返回一个boolean值。如果文件已经存在,则创建不成功。注意,这里与输出流不同,输出流传入的文件如果已经存在,里面的内容会被复写。

boolean mkdir()  创建文件夹

boolean mkdirs()创建多级文件夹


删除文件

boolean deleteFile()    如果是文件夹,文件夹中不能包含有文件。

void deleteOnExit()  这个方法的用处是在使用一些临时文件的时候,在使用中不能删除,在使用完毕,退出后自动删除,其实就是标记该文件,告诉计算机,退出时删除

 

查询文件

String list ()  这里列出的文件名是字符串

File listFile ()列出的是文件对象,可用文件方法操作


 判断

isExist() 判断文件是否存在

isFile() 判断是不是文件

isDirectory 判断是不是文件夹


获取

String getName()获取文件名

String getPath()获取文件路径

String getAbsolutePath()获取文件绝对路径

long getLengh()获取文件大小



获取文件列表以及删除多层文件


由于多层文件夹的存在,我们在获取文件列表和删除文件的时候用递归的方法会非常有效率。

在程序中,递归就是指在方法调用自身的方法。


递归要注意的地方

1.要有限定条件

2.注意递归次数,避免内存溢出


程序示例1:列出指定文件夹中所有文件夹和文件的名称

[java] view plaincopy
  1. public static void getList(File dir)
  2. {
  3.     File[] file= dir.listFile();

  4. for(File f : file)
  5. {
  6. if(f.isDirectory)
  7.   System.out.println(f.getName());
  8. getList(f);//如果是目录,递归调用自己
  9. else
  10. System.out.println(f);
  11. }
  12. }


程序示例2:删除一个多层文件夹,文件夹里有文件。思路:由于不能直接删除带有包含文件的文件夹,所以先用递归方法删除所有文件,最后把原文件夹删除即可。

[java] view plaincopy
  1. public static void deleteList(File dir)
  2. {
  3.     File[] file= dir.listFile();

  4. for(File f : file)
  5. {
  6. if(f.isDirectory)
  7.   
  8. deleteList(f);//如果是目录,递归调用自己
  9. else
  10. dir.delete();
  11. }
  12. dir.delete();//最后把文件夹删除
  13. }



---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值