------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ----
来源:互联网 发布:淘宝直播营销策划书 编辑:程序博客网 时间:2024/04/26 08:28
黑马程序员 File类、递归
File类
用来将文件或者文件夹封闭成对象。方便对文件与文件夹的属性信息进行操作。File对象可以作为参数传递给流的构造函数。
流只能操作数据,如果要操作文件的信息就必须要用File类。
构造方法
//将文件封装成对象,可以将已有的和未出现的文件或文件夹封装成对象。
File f = new File(“文件夹及文件路径”);
//
File f = new File(“文件目录”,“文件名”);
//
File d = new File(“c:\\abc”);
File f = new File(d,”c.txt”);
属性和方法
File.separator:目录分隔符
常见方法:
创建
boolean createNewFile():在指定的位置创建文件,如果该文件已经存在,则不创建。返回false。和输出流不一样,输出流对象一建立就会创建文件,而且文件已经存在后,会覆盖。
createTempFile():创建临时文件
boolean mkdir():创建文件夹。只能创建一级目录
boolean mkdirs():创建多级文件夹
删除
boolean delete():删除失败返回false
void deleteOnExit():在程序退出时删除指定文件。
判断
boolean canExecute():判断文件及路径可否执行
canRead():判断文件是否可读
canWrite():判断文件是否可写
comparTo():排序
boolean exists():文件是否存在
boolean isDirectory():判断是否是文件夹。
boolean isFile():判断是否是文件
//记住:在判断文件对象是否是文件或者是目录时,必须要先判断该文件对象封闭的内容是否存在。通过exists判断。
isAbsolutePath():是否是绝对路径
获取信息
String getName():获取名称
String getPath():获取路径
String getParent():返回的是绝对路径中的文件父目录。如果获取的是相对路径,返回null。如果相对路径有上一层目录,那么这个目录就是返回结果。
String AbsolutePath():获取绝对路径
File AbsoluteFile():获取绝对路径,将返回封装成file对象。
long lastModified():获取最后一次修改的时间
long length():获取文件大小
renameTo():更改文件名,也可修改路径
File[] listRootsDemo():返回盘符
String[] list(FilenameFilterfileFilter):返回目录下的文件及目录的列表。如果不是目录的话,返回的是null. 如有参数,为文件名过滤器。
例:
File dir = new File(“d:\\aaa\\bb”) ;
String[] arr = dir.list(new FilenameFilter()){
public booleanaccept(File dir ,String name){
returnname.endsWith(“.bmp”);
}
}
File[] listFiles():返回文件夹下所有文件及文件夹的对象
实例:
列出指定目录下文件或者文件夹,包含子目录中的内容。也就是说列出指定目录下的所有内容。
递归:函数自身调用自身,
递归要注意:1. 限定条件 2. 要注意递归的次数,避免内存溢出。
class FileDemo{
public static voidmain(String[] args){
File dir =new File(“c:\\”);
showDir(dir);
}
public static void showDir(file dir){
System.out.println(dir);
file[]files = dir.listFiles();
for(intx=0;x<files.length;x++){
if(files[x].isDirectory())
showDir(files[x]);
else
System.out.println(files[x]);
}
}
}
------------------
带层次
public static String getLevel(int level){
StringBuffer sb = new StringBuffer();
for(int x=0;x<level;x++){
sb.append("--");
}
return sb.toString();
}
public static void show(File file,int level){
System.out.println(getLevel(level)+file.getName());
level++;
File[] filetmp = file.listFiles();
for(int x=0;x<filetmp.length;x++){
if(filetmp[x].isDirectory()){
show(filetmp[x],level);
}else{
System.out.println(getLevel(level)+filetmp[x]);
}
}
}
实例2: 删除一个带内容的目录
删除原理:
在widow中,删除目录从里面往外删除。既然是从里往外删,就需要用到递归。
public static void removeFile(File file){
System.out.println(file);
File[] dir = file.listFiles();
for(int x=0;x<dir.length;x++){
if(dir[x].isDirectory())
removeFile(dir[x]);
else
dir[x].delete();
}
file.delete();
}
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ----
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ----
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ----
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ----
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ----
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ----
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ----
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ----
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ----
- ----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
- <a href="http://www.pianopro.cn">通州钢琴培训</a>
- 尖峰在线培训 http://www.jianfengedu.com/
- 培训
- 培训
- 培训
- 培训
- 培训
- 培训
- shell脚本参数
- jquery 对 Json 的各种遍历
- 美国金融学博士项目和申请介绍
- android XML 自定义非android属性注意事项
- kernel-0基础数据
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ----
- 56. Attribute value 属性
- man pthread_mutex_init 或 man pthread_mutex_lock 没有结果的解决办
- MySql索引算法原理解析(通俗易懂,只讲B-tree)
- sqlserver2005如何更改存储过程和表的所有者
- POJ 1080 Human Gene Functions dp
- 转载一篇CSS布局的博客
- jdk7和8的一些新特性介绍
- iOS入门(三十七) 中级数据持久化