File类(重点):
1.概述
用于描述文件或者文件夹的对象,一定提供了
操作文件或者文件夹的方法。
2.常用方法
示例1:
File f=new File("file.txt");
//可以创建子目录
File fzimulu=new File("File\\a\\b\\v\\d\\d");
//1.判断其存在
boolean b=f.exists();
//创建。如果该文件不存在,则创建,如果存在,则不创建
booleanb=f.createNewFile();
//删除,不通过回收站,直接删除
booleanb=f.delete();
//创建文件夹
f.mkdr();
//判断是否是文件夹或者文件
f.isDirectory();
f.isFile();
示例2:
//获取
File file=new File("demo.txt");
file.getAbsolutePath();//绝对路经
file.getPath();//当前路径
file.getParent();//父目录名
file.getName();//文件名
file.getFreeSpace();//所在硬盘的剩余空间
file.getlastModified();//最后修改时间
file.length();//字节长度
示例3:list();
//File类中的list()
File file=newFile("C:\\Users\\Administrator\\Desktop\\近期计划");
//目录不存在或者目录为文件,返回names为null,所以先判断
if(file.exists() &&file.isDirectroy())
String[]names=file.list();
for(String name :names)
{
System.out.println(name);
}
示例4:list(filenamefilter)
//获取指定目录下的扩展名为.java的文件
方法1:
1)创建接口Filenamefilter
2)实现
File file=newFile("E:\\java");
FilenameFilter filter=newguolvhouzhui(".txt");
String[]names=file.list(filter);
for(String name:names)
{
System.out.println(name);
}
方法2:
//用listFiles()和listFiles(FilenameFilter filter)
File file=new File("E:\\java");
File[]files=file.listFiles();
for(File fil:files)
{
System.out.println(fil.getName());
}
3.列出目录包含子目录的内容(递归实现)
public static void listAll(File dir)
{ //获得目录下的子目录
File[]files=dir.listFiles();
for(File file:files)
{
if(file.isDirectory())
{
listAll(file);
}
else
System.out.println(file);
}
}
4.删除一个有内容的目录(递归)
思路: 先删除里面的内容才可以删除文件夹
所以需要对文件夹进行包含子目录的遍历
实现:
publicstatic void removeDir(File dir)
{
File[] files=fir.listFiles();
for(File file : files)
{
if(file.isDirectory())
{
removeDir(file);
}
else
{
//删除文件内容
file.delete();
}
}
//删除文件夹
dir.delete();
}
5.递归
递归是自身调用自身
注意:1)一定要定义条件
2)要控制递归次数
示例:
public static int getSum(int num)
{
if(num==1)
{
return 1;
}
return num+getSum(num-1);
}
小记:
流操作的是文件中的数据,而不可以操作文件;