01.java IO之File

1.File的类图

2.举个栗子

import java.io.*;
import java.sql.SQLOutput;

/**
 * File  是文件和目录路径名的抽象表示形式。
 */
public class FileDemo {
    public static void main(String[] args) {
        File file = new File("d:/a.txt");
        test1(file);
        File file1 = new File("d:/");
        test2(file1);


        File file3 = new File("d:/");//过滤文件
        test3(file3);
    }

    private static void test3(File file3) {
        String[] list = file3.list(filenameFilter());
        for (String s : list) {
            System.out.println(s); //返回的是D盘下的所有文件和目录  但是不添加盘符
        }

        File[] files1 = file3.listFiles(filenameFilter());

        for (File file1 : files1) {
            System.out.println(file1); //返回的D盘下的绝对路径
        }

        File[] files2 = file3.listFiles(fileFilter());

        for (File file1 : files2) {
            System.out.println(file1); //返回的D盘下的绝对路径
        }
    }

    public static FilenameFilter filenameFilter(){

        return new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return name.endsWith(".java");
            }
        };
    }
    public static FileFilter fileFilter(){
        return new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return pathname.getName().endsWith(".java");
            }
        };
    }


    private static void test2(File file) {
        File[] files = file.listRoots();
        for (File file1 : files) {
            System.out.println(file1);   //返回的是 C:\  D:\ E:\
        }

        String[] list = file.list();
        for (String s : list) {
            System.out.println(s); //返回的是D盘下的所有文件和目录  但是不添加盘符
        }

        File[] files1 = file.listFiles();
        for (File file1 : files1) {
            System.out.println(file1); //返回的D盘下的绝对路径
        }


    }

    private static void test1(File file ) {
        try {
            boolean newFile = file.createNewFile(); //创建一个空文件 如果文件存在则返回false

            System.out.println(newFile);
            System.out.println(file.canExecute());//文件是否可执行
            System.out.println(file.canRead());//文件是否可读取
            System.out.println(file.canWrite());//文件是否可写
            System.out.println(file.getCanonicalFile());//回去文件 的抽象路径
            System.out.println(file.getCanonicalPath());//获取文件的抽象路径
            System.out.println(file.compareTo(new File("d:/b.txt")));// 返回-1 如果该参数等于此抽象路径名,则返回零;如果此抽象路径名在字母顺序上小于该参数,则返回小于零的值;如果此抽象路径名在字母顺序上大于该参数,则返回大于零的值
            File tempFile = File.createTempFile("aqqq1", "txt",new File("d:/"));//创建临时文件
            System.out.println(tempFile);
            boolean delete = tempFile.delete();// 删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除。
            System.out.println(delete);
//            deleteOnExit() 这个方法的栗子:如果正在传文件的时候jvm断开了 那么创建的文件就会删除掉  类似于数据库的事务原子的特性
            System.out.println(file.equals(file));//判断给定的File的对象的抽象路径是否一样 使用的其实是CompareTo方法
            System.out.println(file.exists());//存在返回true 不存在的时候返回false
            System.out.println(file.getAbsoluteFile());//返回绝对路径
            System.out.println(file.getAbsolutePath());//返回绝对路径字符串
            System.out.println(file.getFreeSpace());//返回磁盘的空余空间
            System.out.println(file.getTotalSpace());//返回磁盘总空间
            System.out.println(file.getUsableSpace());//返回磁盘可用空间
//            System.out.println(file.isAbsolute()); //是否为绝对路径名
//            System.out.println(file.isDirectory());//是否为目录
//            System.out.println(file.isFile());//是否为文件
//            System.out.println(file.isHidden());//文件是否隐藏
//            System.out.println(file.lastModified());//文件的最近更新时间
//            System.out.println(file.length());//文件的大小
//            System.out.println(file.list().toString());//目录中的文件和目录
//            System.out.println(file.listRoots());//可用的文件系统根
//            file.mkdir(); //创建目录     只能有一级  比如 d:/aaa
//            file.mkdirs(); //创建多级目录 比如 d:/aaa/bbb



        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

  

猜你喜欢

转载自www.cnblogs.com/code111/p/9156462.html
今日推荐