java===IO=file

package File类;

import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.util.Date;

public class FileDemo_1 {

    public static void main(String[] args) throws IOException {

        File_demo_5();
    }

    public static void File_demo_5() {
        File[] files =File.listRoots();
        for(File file:files){
            System.out.println(file);
        }
    }

    public static void File_demo_4() {
        /**
         * 重命名
         * */
        File f1 = new File("d:\a.txt");
        File f2 = new File("d:\b.txt");
        f1.renameTo(f2);//如果f2 不跟f1相同路径,文件也不存在,会实现剪切;
    }

    public static void File_demo_3() {
        /**
         * 判断:
         * */
        File f1 = new File("a.txt");
        boolean b1 = f1.exists();
        f1.isDirectory();//是不是目录
        f1.isFile();//是不是文件
    }

    public static void File_demo_2() throws IOException {
        /**
         * 创建与删除:
         * 返回值肯定是boolean; 
         * 注意文件正在被流操作是删不掉的;
         * */
        File file =new File("file.txt");
        boolean b = file.createNewFile();
        /**
         * 和输出流不一样,如果文件不存在,则创建,如果存在则不创建
         * 
         * 
         * */
        boolean b1 = file.delete();
        //file.deleteOnExit();叫虚拟机删除,在虚拟机退出时;一定会删除;
        File file1 = new File("abc\a\c\v\b");
        boolean b2 = file1.mkdir(); //创建目录 
        file1.mkdirs();//创建多级目录
        file1.delete();//目录里面有东西是删不掉的
    }

    public static void File_demo_1() throws IOException {
        /**
         * 获取:
         * 文件名称 
         * 文件路径
         * 文件修改时间
         * 文件大小
         * */
        File f = new File("d:\");
        File f1 = new File(f,"abc.txt");
        String name=f1.getName();
        String abspath=f1.getAbsolutePath();//绝对路径
        String path= f1.getCanonicalPath();//相对路径
        long time = f1.lastModified();
        f1.getFreeSpace();//剩余空间
        f1.getTotalSpace();//全部空间
        f1.getUsableSpace();//已使用空间
        long len = f1.length();
        Date date = new Date(time);
        DateFormat dateformate =DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
        String str_name = dateformate.format(date);
        System.out.println(str_name);
        /**
         * list();方法获取单签目录下的文件以及文件夹名称,包含隐藏文件。
         * 调用list方法的file对象中封装的必须是目录。
         * 否则会发生空指针异常
         * 如果访问的系统级目录,也会发生空指针异常,
         * 如果目录存在但是没有内容,会返回一个数组,但是长度为0;
         * 
         * */
        File file = new File("C:\");
        String [] names = file.list();
        for(String n: names){
            System.out.println(n);
        }
    }

}
package File类;

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

public class FilterByJava implements FilenameFilter {
    private String str;
     public FilterByJava(String str) {
         this.str=str;
    }

    @Override
    public boolean accept(File dir, String name) {
//File dir接收的是目录,String name接收的是目录下的每个文件及文件夹,FilenameFilter类中自动实现了转换成String类型而不是File类型
        return name.endsWith(str);
    }

}
package File类;

import java.io.File;

/**
 * 获取磁盘中带有指定后缀名的文件夹
 * */
public class FileTest_1 {

    public static void main(String[] args) {

        listDemo_2();
    }

    private static void listDemo_2() {
        File dir = new File("d:\");
        File [] names=dir.listFiles(new FilterByJava(".java"));
        for(File name:names){
            System.out.println(name.toString());
        }
    }

}
package File类;

import java.io.File;


public class FileTest_2 {

    public static void main(String[] args) {
        File dir = new File("d:\api_java");
        int level=0;

        show(dir,level);
    }

    public static void show(File dir,int level) {
        System.out.println(getSpace(level)+dir.getName());
        File[]files = dir.listFiles();
        level++;
        for(File file: files){
            if(file.isDirectory()){
                show(file,level);
            }else{
                System.out.println(getSpace(level)+file.getName());
            }
            
        }
    }

    public static String getSpace(int level) {
        final String SPACE="   ";
        StringBuilder sb = new StringBuilder();
        for(int x=0;x<level;x++){
            sb.append(SPACE);
        }
        return sb.toString();
    }

}
package File类;

import java.io.File;

/*
 * 需求:删除一个含有多级目录的文件夹
 * 思路:遍历文件夹
 * 
 * */
public class FileTest_3 {

    public static void main(String[] args) {

        File file = new File("d:\dir");
        removeFile(file);
    }

    public static void removeFile(File file) {
        File[]files = file.listFiles();
        for(File name:files){
            if(name.isDirectory()){
                removeFile(name);
            }else{
                System.out.println(name+":是否被删除:"+name.delete());
            }
            
        }
        System.out.println(file+":"+file.delete());
        
    }

}
原文地址:https://www.cnblogs.com/wangyinxu/p/6859314.html