File类常见方法:

File类常见方法:
1、创建。
boolean createNewFile(); 在指定位置创建文件,如果该文件已存在,则不创建,返回false。
和输出流不一样,输出流对象一创建文件,而且该文件已经存在会覆盖。
boolean mkdir():创建文件夹
boolean mkdirs():创建多级文件夹
2、删除。
boolean delete(); //删除失败返回false。
void deleteOnExit();//在程序退出时删除指定文件。
3、判断。
boolean exists():文件是否存在
isFile();
isDirectory();
isHidden(); 判断是否为隐藏文件,java只拿不是隐藏的文件。
isAbsolute();判断是否为绝对路径名
4、获取信息。
getName();
getPath();
getParent();

getAbsolutePath() ;
long lastModified() ;
long length()

public class FileDemo {

    public static void main(String[] args) throws IOException {
        
        //consMethod();
        method_5();

    }
    public static void method_5()
    {
        File f1 = new File("fos.txt");
        File f2 = new File("haha.java");
        
        sop("rename:"+f1.renameTo(f2));
        
    }
    public static void method_4()
    {
        File f = new File("F:\eclipseWorkspace\Bixiangdong\a.txt");
        
        sop("path:"+f.getPath());
        sop("abspath:"+f.getAbsolutePath());
        sop("parent:"+f.getParent());//该方法返回的是绝对路径中的父目录。
                                    //如果获取的是相对路径,返回空。
                                    //如果相对路径中有上一层目录,那么该目录就是返回结果。
    }
    public static void method_3() throws IOException
    {
        File f = new File("F:\eclipseWorkspace\Bixiangdong\file1.txt");
        //f.createNewFile();
        
        //f.mkdir();
        
        //记住在判断文件对象是否是文件或者目录时。必须要先判断文件对象封装的内容是否存在。
        //通过exists判断。
        sop("dir:"+f.isDirectory());
        sop("file:"+f.isFile());
        sop(f.isAbsolute());
    }
    
    public static void method_2()
    {
        File f = new File("file.txt");
        //sop("execute:"+f.canExecute());
        //sop("exists:"+f.exists());
        //创建文件夹
        File dir = new File("abc\kk\aaaa\bbbb\ccccc");
        sop("mkdir:"+dir.mkdirs());//只能创建一级目录
    }
    public static void method_1() throws IOException
    {
        File f = new File("fiele.txt");
        f.deleteOnExit();
        //sop("create:"+f.createNewFile());
        //sop("delete:"+f.delete());
        
    }
    
    //创建File对象
    public static void consMethod()
    {
        //将a.txt封装成file对象,可以将已有的和未出现的文件或者文件夹封装成对象。
        File f1 = new File("a.txt");
        
        //
        File f2 = new File("F:\eclipseWorkspace\Bixiangdong","b.txt");
        
        File d = new File("F:\eclipseWorkspace\Bixiangdong");
        File f3 = new File(d,"c.txt");
        
        File f4 = new File("F:"+File.separator+"eclipseWorkspace"+File.separator+"Bixiangdong"+File.separator+"a.txt");
        sop("f1:"+f1);
        sop("f2:"+f2);
        sop("f3:"+f3);
        sop("f4:"+f4);
    }
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }

}
FileDemo

//文件过滤

import java.io.File;
import java.io.FilenameFilter;

public class FileDemo2_5 {

    public static void main(String[] args) {
        
        //listDemo();
        
        File dir = new File("F:\eclipseWorkspace\Bixiangdong"); 
        File[] files = dir.listFiles();
        for(File f:files)
        {
            System.out.println(f.getName()+":"+f.length());
        }
        
        
    }
    public static void listDemo_2()
    {
        //文件过滤
                File dir = new File("F:\eclipseWorkspace\Bixiangdong");
                String[] arr = dir.list(new FilenameFilter()
                {
                    public boolean accept(File dir,String name)
                    {
                        //System.out.println("dir:"+dir+"...name:"+name);
                        /*
                        if(name.endsWith(".tmp"))
                            return true;
                        else
                            return true;
                            */
                        return name.endsWith(".tmp");
                    }
                });
                System.out.println("len:"+arr.length);
                for(String name:arr)
                {
                    System.out.println(name);
                }
    }
    public static void listDemo()
    {
        File f = new File("F:\eclipseWorkspace\Bixiangdong");
        String[] names = f.list();//调用list方法的fiel对象必须是封装了一个目录。该目录还必须存在。
        for(String name:names)
        {
            System.out.println(name);
        }
    }
    public static void listRootsDemo()
    {
        File[] files = File.listRoots();
        
        for(File f:files)
        {
            System.out.println(f.length());
        }
    }

}
FileDemo2_5

带层次

/*
列出制定目录下文件或者文件夹,包含子目录中的内容。
也就是列出制定目录下所有内容。

因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可,
在列出过程中出现的还是目录的话,可以再次调用本功能。
也就是函数自身调用自身。
这种表现形式,或者变成手法,称为递归。

递归要注意:
1、限定条件
2、要注意递归的次数,尽量避免内存溢出。
*/
public class FileDemo3_7 {

    public static void main(String[] args) {
        File dir = new File("F:\eclipseWorkspace\Bixiangdong");
        showDir(dir,0);
        //toBin(6);
//        int n = getSum(100);
//        sop(n);
    }
/*
带层次
*/
    public static String getLevel(int level)
    {
        StringBuilder sb = new StringBuilder();
        sb.append("!--");
        for(int x=0;x<level;x++)
        {
            //sb.append("!--");
            sb.insert(0, "!  ");
        }
        return sb.toString();
    }
    public static void showDir(File dir,int level)
    {
        System.out.println(getLevel(level)+dir.getName());
        level++;
        File[] files = dir.listFiles();
        for(int x=0;x<files.length;x++)
        {
            if(files[x].isDirectory())
                showDir(files[x],level);
            else
                System.out.println(getLevel(level)+files[x]);
        }
    }
    public static int getSum(int n)
    {
        if(n==1)
            return 1;
        else return n+getSum(n-1);
    }
    public static void toBin(int num)
    {
        /*
        while(num>0)
        {
            System.out.println(num%2);
            num = num/2;
        }
        */
        if(num>0)
        {
            toBin(num/2);
            System.out.println(num%2);
        }
    }
    
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }

}
FileDemo3_7

/*
练习:
将一个指定目录下的java文件的绝对路径,存储到一个文件文件中,
建立一个java文件列表文件。

思路:
1、对指定的目录进行递归,
2、获取递归过程中所有的java文件的路径,
3、将这些路径存储到集合中,
4、将集合中的数据写入到一个文件中。
*/

public class JavaFileList_10 {

    public static void main(String[] args) throws IOException
    {
        File dir = new File("F:\eclipseWorkspace\Bixiangdong");
        List<File> list = new ArrayList<File>();
        fileToList(dir,list);
        System.out.println(list.size());
        File file = new File(dir,"javalist.txt");
        writeToFile(list,file.toString());
    }
    public static void fileToList(File dir,List<File> list)
    {
        File[] files = dir.listFiles();
        for(File file :files)
        {
            if(file.isDirectory())
                fileToList(file,list);
            else
            {
                if(file.getName().endsWith(".java"))
                    list.add(file);
            }
        }
    }
    public static void writeToFile(List<File> list,String javaFile) throws IOException
    {
        BufferedWriter bufw = null;
        try
        {
            bufw = new BufferedWriter(new FileWriter(javaFile));
            for(File f:list)
            {
                String path = f.getAbsolutePath();
                bufw.write(path);
                bufw.newLine();
                bufw.flush();
            }
        }
        catch(IOException e)
        {
            throw e;
        }
        finally
        {
            try
            {
                if(bufw!=null)
                    bufw.close();
            }
            catch(IOException e)
            {
                throw e;
            }
        }
    }

}
JavaFileList_10
原文地址:https://www.cnblogs.com/cailingsunny/p/4698601.html