Fiel类总结

 File类:
三个构造函数
1.File(string pathname);//pathname表示创建文件或者目录的路径
例File dir1=new File("G://dir1");//创建目录
if(!dir1.exists())
{
    dir1.mkdir();//如果不存在则创建目录
}
例File file1=new File("G://test.txt");//创建文件
if(!file1.exists())
{
    try{
        file1.createNewFile();
    }catch(IOException e)
    {
        e.printStackTrace();
    }
}
2.File(File parent,String child);//参数parent表示根目录,child表示子路径
例:File dir2=new File(dir1,"dir2");//在dir1下创建目录dir2
    if(!dir2.exists())
    {
        dir2.mkdirs();
    }
    File file1=new File(dir1,"test1.txt");//在目录dir1下创建文件test.txt
    if(!file1.exists())
    {
        try{
            file1.createNewFile();
            }catch(IOException e)
            {
                e.printStackTrace();
            }
    }
    File dir4=new File(dir1,"dir3//dir4");//在dir1下创建目录dir3,然后dir3下创建dir4
    if(!dir4.exists())
    {
        dir4.mkdirs();
    }
3.File(String parent,String child);//参数parent表示根目录,child表示子路径(同上)
4.File[] listFiles():返回当前目录下所有的子目录和文件的File对象
5.boolean exists(),判断文件或者目录是否存在
6.boolean createNewFile(); 如果文件不存在,则创建新的文件
7.boolean mkdir();创建由File对象表示的目录
8.boolean mkdirs();在文件系统创建有File对象表示的目录,如果该目录的父目录不存在的话,
则创建所有的父目录
9.boolean canRead(),判断是否有读的权限
10.boolean canWrite;判断是否有写的权限
11.boolean delete();删除对象File所有代表的文件或目录,如果目录下包含子目录或者文件则不允许
删除File对象所代表的目录
12.String getName(),返回File对象代表的文件或者目录的名称
13.String getParent(),返回File对象代表的文件或者目录的根目录,不包含当前目录,如果没有返回NULL
System.out.println(dir4.getParent()); 运行结果:G:/dir1/dir3
14.String getPath();返回File对象代表的文件或者目录的目录,包含当前目录
System.out.println(dir4.getPath()); 运行结果:G:/dir1/dir3/dir4
15.String getAbsolutePath();返回File对象代表的文件或者目录的绝对路径
System.out.println(dir4.getAbsolutePath()) 运行结果:G:/dir1/dir3/dir4
16.boolean isFile();判断File对象是否代表一个文件
17.booeanl isDirectory(),判断File对象是否代表一个目录
18.long lastModified(),返回File对象代表的文件或者目录最近一次被修改的时间
19.String[] lsit(),如果该File对象代表目录,则返回该目录下所有文件和目录的名字列表
20.boolean renameTo(File file)如果File对象代表文件,则将文件名改为file参数所表示的文件名

import java.io.*;
//impirt java.io.date;

public class UseFile {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

    
    File dir1=new File("G://dir1");
    if(!dir1.exists())
    {
        dir1.mkdir();
    }
    File dir2=new File(dir1,"dir2");
    if(!dir2.exists())
    {
        dir2.mkdirs();
    }
    File dir4=new File(dir1,"dir3//dir4");
    if(!dir4.exists())
    {
        dir4.mkdirs();
    }
    File file1=new File(dir1,"test1.txt");
    if(!file1.exists())
    {
        try{
            file1.createNewFile();
            }catch(IOException e)
            {
                e.printStackTrace();
            }
    }
    
    File file=new File(dir2,"test.txt");
    if(!file.exists())
    {
        try{
        file.createNewFile();
        }catch(IOException e)
        {
            e.printStackTrace();
        }
    }
        
    //System.out.println(dir4);测试各种方法
    //listDir(dir1);//打印子目录及其文件
    //deleteDir(dir1);//删除目录及其文件
    
    String[] lists=dir1.list();
    //打印当前目录下包含的所有子目录和文件的名字
    String info="目录"+dir1.getName()+"(";
    for(int i=0;i     {
        info+=lists[i]+",";
    }
    info+=")";
    System.out.println(info);
    
    }
    
    public static void listDir(File dir)
    {
        File[] lists=dir.listFiles();
        //打印当前目录下包含的所有子目录和文件的名字
        String info="目录"+dir.getName()+"(";
        for(int i=0;i         {
            info+=lists[i].getName()+",";
        }
        info+=")";
        System.out.println(info);
        
        //递归打印出当前目录下所有子目录及其文件的详细信息
        for(int i=0;i         {
            File f=lists[i];
            if(f.isFile())
            {
                System.out.println("文件"+f.getName()+"canRead:"+f.canRead()+"canWrite:"
                        +f.canWrite()+"lastModified:"+f.lastModified());
            }
            else
            {
                listDir(f);
            }
        }
    }
    
    public static void deleteDir(File dir)
    {
        if(dir.isFile())//如果dir是文件则直接删除,返回即可
        {
            dir.delete();
            return;
        }
        File[] lists=dir.listFiles();
        for(int i=0;i         {
            deleteDir(lists[i]);//递归删除所有的子目录和文件
        }
        dir.delete();
    }
    
            
}

 

Filel列的list()和listFiles()方法都可以返回当前Fiel对象代表的目录下所有子目录和文件的清单,如果仅希望满足某种条件下的子目录和文件清单,则可以用:File[] list(FilenameFilter filter)和File[] listFiles(FilenameFilter filter),filter为过滤条件,不过要实现接口中的方法

public interface FilenameFilter()

{

     public boolean accept(File dir,String name)

}

例子:在UserFilenameFilter类中定义了一个匿名类其中放啊accept()的实现为:只有当currentFile对象代表文件,并且扩展名为“.txt”事才加入返回清单中;

ubilc void UserFIlenameFilter

{

    public stacic void main(string[] args)

    {

             File dir1=new FIle("G://");

            FIlenamaFIlter filter=new FilenameFilter

        {

               public boolean accept(File dir ,String name)
            {
                System.out.println("根路径"+dir.getPath()+"子路径"+name);
                File currentFile=new File(dir,name);
                if(currentFile.isFile()&&name.indexOf(".txt")!=-1)
                {
                    return true;
                }    
                else
                {
                    return false;
                }
            }

        }
        
        string[] lists[]=dir1.list(filter);//利用filter来返回指定的目录和文件
        for(int i=0;i         {
            System.out.println(lists[i]);
        }

    }

}

 

 

 

你可能感兴趣的:(技术专区)