IO流--File

(0)获取文件的两种方式

使用File.separator可以实现跨平台的分割符

    //方法一
    File file1=new File("demo1.txt");
    file1.createNewFile();
    //方法二
    File file2=new File("C:"+File.separator,"text.txt");
    file2.createNewFile();
    //方法三
    File file3=new File("D:"+File.separator,"text2.txt");
    file3.createNewFile();
    System.out.println("file1:"+file1);
    System.out.println("file2:"+file2);
    System.out.println("file3:"+file3);

 

(1)对文件的创建,删除,判断,获取信息,移动,重命名

        //文件的创建
        File file=new File("demo1.txt");
        //文件的删除(成功返回true失败返回false )
        System.out.println(file.delete());
        //文件在退出的时候删除(主要用于临时文件的删除)
        file.deleteOnExit();
        //判断
        System.out.println(file.exists());//是否存在
        System.out.println(file.isFile());//是否是文件
        System.out.println(file.isDirectory());//是否是文件夹
        System.out.println(file.isHidden());//是否隐藏
        System.out.println(file.isAbsolute());//是否是绝对路径
        //获取
        System.out.println(file.getName());//获取文件名
        System.out.println(file.getParent());//获取绝对路径的父级目录,获取相对路径的上级目录
        System.out.println(file.getPath());//获取封装的路径
        System.out.println(file.getAbsoluteFile());//获取据对路径封装成的文件对象
        System.out.println(file.getAbsolutePath());//获取绝对路径的字符创
        System.out.println(file.lastModified());//获取最后修改时间
        System.out.println(file.length());//获取文件的大小

 (2)文件重命名,移动

    //实现文件改名
    File file1=new File("C:\demo.txt");
    File file2=new File("C:\demo2.txt");
    System.out.println("haha   "+file2.renameTo(file1));;
    
    //实现文件的移动
    File file3=new File("C:\demo.txt");
    File file4=new File("C:\demo2.txt");
    System.out.println("haha   "+file3.renameTo(file4));;

 

(3)获取列表(盘符列表,获取指定文件夹的目录,获取指定文件夹目录中符合条件的文件名列表,获取指定文件夹目录中符合条件的文件列表)

//获取根目录盘符列表
    File[] fileLise=File.listRoots();
    for(File file :fileLise)
    {
        System.out.println(file);
    }
    
    //获取指定文件的子文件及以及一级子文件夹]
    //使用list时封装的对象必须是已经存在的文件夹
    File file5=new File("F:\test");
    file5.mkdir();
    String[] fileNames=file5.list();
    for(String name :fileNames)
    {
        System.out.println(name);
    }
    
    //获取指定目录下符合自定义条件的文件名列表
    File file7=new File("F:\");
    String[] fileList2=file7.list(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
            return name.endsWith(".exe");
        }
    });
    
    for(String name:fileList2)
    {
        System.out.println(name);
    }
    
    ////获取指定目录下符合自定义条件的文件列表
    File[] fileList3=file7.listFiles(new FileFilter() {
        
        @Override
        public boolean accept(File pathname) {
            return pathname.toString().endsWith(".exe");
        }
    });
    System.out.println("****************");
    for(File file:fileList3)
    {
        System.out.println(file.toString());
    }

 

(4)列出指定文件夹下的所有文件及文件夹(包括子文件里面的内容)【使用递归】

    // 获取指定文件夹下的所有文件(包括子文件夹内部的内容)
    public static void test() {
        File file = new File("F:\tset");
        getdir(file);
    }

    public static void getdir(File file_s) {
        File[] fileLists = file_s.listFiles();
        for (File file_1 : fileLists) {
            System.out.println(file_1);
            if (file_1.isDirectory()) {
                getdir(file_1);
            }
        }
    }

    public static void main(String[] args) {
        test();
    }

 

(4)列出指定文件夹下的所有文件及文件夹(包括子文件里面的内容)【层次】

/**
     * 列出指定目录下的所有文件夹及文件(带层次)
     * 
     * @param args
     */
    // 获取指定文件夹下的所有文件(包括子文件夹内部的内容)
    public static void display() {
        File file = new File("F:\tset");
        getdir(file,0);
    }

    public static void getdir(File file_s,int level) {
        level++;
        StringBuilder sb=new StringBuilder();
        sb.append("|--");
        for(int i=1;i<level;i++)
        {
            sb.insert(0,"   ");
        }
        File[] fileLists = file_s.listFiles();
        for (File file_1 : fileLists) {
            System.out.println(sb.toString()+file_1.getName());
            if (file_1.isDirectory()) {
                getdir(file_1,level);
                
            }
        }
    }

    public static void main(String[] args) {
        display();
    }


(5)删除文件及其内容

/**
 * 删除文件及其内容
 * @author Administrator
 *
 */
public class Demo5 {
    public static void deleteDir(File dir)
    {
        File[] fileList=dir.listFiles();
        for(File file : fileList)
        {
            //java无法访问隐藏的目录
            if(!file.isHidden()&&file.isDirectory())
                deleteDir(file);
            else
                System.out.println(file.delete());
        }
        System.out.println(dir.delete());
    }
public static void main(String[] args) {
    File file=new File("F:\tset");
    deleteDir(file);
    
    
}
}

(6)一个指定目录下的java文件的据对路径保存在一个txt中

/**
 * 将一个指定目录下的java文件的据对路径保存在一个txt中
 * @author Administrator
 *
 */
public class Test1 {
public static void main(String[] args) {
    BufferedWriter writer=null;
    try {
        //创建txt文件
        writer =new BufferedWriter(new FileWriter("ttt.txt"));
        //创建文件
        File dir=new File("F:\text");
        findFile(dir,writer);
    } catch (IOException e) {
        e.printStackTrace();
    }finally{
        try {
            if(writer!=null)
            writer.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    
}

private static void findFile(File dir ,BufferedWriter bw) throws IOException {
    File[] fileList=dir.listFiles();
    for(File f : fileList)
    {
        if(!f.isHidden() && f.isDirectory())
        {
            findFile(f,bw);
        }
        else if(f.isAbsolute()){
            bw.write(f.getAbsolutePath());
            bw.newLine();
        }
    }
}
}







原文地址:https://www.cnblogs.com/excellencesy/p/9192256.html