---------------------- 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:列出指定文件夹中所有文件夹和文件的名称
- public static void getList(File dir)
- {
- File[] file= dir.listFile();
-
- for(File f : file)
- {
- if(f.isDirectory)
- System.out.println(f.getName());
- getList(f);//如果是目录,递归调用自己
- else
- System.out.println(f);
- }
- }
-
程序示例2:删除一个多层文件夹,文件夹里有文件。思路:由于不能直接删除带有包含文件的文件夹,所以先用递归方法删除所有文件,最后把原文件夹删除即可。
- public static void deleteList(File dir)
- {
- File[] file= dir.listFile();
-
- for(File f : file)
- {
- if(f.isDirectory)
- deleteList(f);//如果是目录,递归调用自己
- else
- dir.delete();
- }
- dir.delete();//最后把文件夹删除
- }
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------