zoukankan      html  css  js  c++  java
  • Java 文件(File)类

    file类 的作用

        1.用于将文件或者文件夹封装成对象

        2.方便对文件与文件夹进行操作

        3.方便输入输出流的文件传输

    一、创建文件对象,将已有的和未出现的文件或者文件夹封装成对象。

    文件

    这四种方法都将C盘下的1.Java文件封装成对象。

    二、file对象的判断

    可以new file 可以创建已有的文件对象,也可以创建未存在的文件对象,那怎么去判断到底存不存在呢?

    判断

    package com.neuedu.demo01;
    import java.io.File;
    /*
     * 文件类的使用
     */
    public class fileDemo {
        public static void main(String[] args) {
            File f1=new File("E:\learnJava\hello.txt");
            System.out.println(f1.exists());//判断文件或目录是否存在
            System.out.println(f1.isDirectory());//判断文件对象表示的是否是一个目录
            System.out.println(f1.isFile());//判断文件对象表示的是否是一个文件
            System.out.println(f1.isAbsolute());//判断文件对象是否是一个绝对路径
            System.out.println(f1.isHidden());//判断文件对象是否是隐藏文件
        }
    }

    三、文件的创建和删除

    file类提供了一些方法,能够在计算机上常见和删除文件或者目录

    创建

    package com.neuedu.demo01;
    
    import java.io.File;
    import java.io.IOException;
    
    /*
     * 文件类的使用
     * 
     */
    public class fileDemo {
        public static void main(String[] args) {
            File f1=new File("E:\learnJava\hello.txt");//一个文件
            File f2=new File("E:\learnJava\hello");//一个目录
            
            if (f1.exists()) {//文件文件已经存在
                f1.delete();  //则将已经存在的文件删除
            }else {
                try {
                    f1.createNewFile();  //如果不存在,则创建出来
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if (!f2.exists()) {//如果目录不存在
                f2.mkdir();     //创建目录  f2.mkdirs();   创建多级目录  
            }else {
                f2.delete();
            }
        }
    }

    四、File相关get方法

    get

    package com.neuedu.demo01;
    
    import java.io.File;
    import java.io.IOException;
    
    /*
     * 文件类的使用
     * 
     */
    public class fileDemo {
        public static void main(String[] args) {
            File f1=new File("E:\learnJava\hello.txt");//一个文件
            File f2=new File("E:\learnJava\hello");//一个目录
            System.out.println(f1.getAbsolutePath());//获取文件对象的绝对路径,返回的是File对象----E:learnJavahello.txt
            System.out.println(f1.getAbsoluteFile());//获取文件对象的绝对路径,返回的是string-----E:learnJavahello.txt
            System.out.println(f1.getName());//获取文件对象的文件名或者是目录名----hello.txt
            System.out.println(f1.getParent());//获取文件对象的父目录,返回的是string----E:learnJava
            System.out.println(f1.getParentFile());//获取文件对象的父目录文件对象,返回的是File对象----E:learnJava
            try {
                System.out.println(f1.getCanonicalPath());  //获取文件对象的规范路径名----E:learnJavahello.txt
                System.out.println(f1.getAbsoluteFile());   //获取文件对象的规范路径形式,返回file对象----E:learnJavahello.txt
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
           System.out.println(f1.getPath()); ///获取文件路径E:learnJavahello.txt
            
            }
    }

    五、递归文件目录

    文件递归

    通过list()返回文件目录中的文件和目录,返回的是字符串

    通过listFile()返回文件目录中的文件和目录,返回的是文件对象

    package com.neuedu.FileUtils;
    
    import java.io.File;
    import java.io.IOException;
    
    /**
     * 
     * @author wzc
     * 列出File的一些常用操作
     */
    public class FileUtils {
         
        /**
         * 列出指定目录下及子目录下的所有文件
         * @param dir
         * @throws IOException
         */
        public static void listDirectory(File dir)throws IOException{
            //判断目录是否存在
            if (!dir.exists()) {
                throw new IllegalArgumentException("目录"+dir+"不存在");
            }
            //判断File dir是否是目录
            if (!dir.isDirectory()) {
                throw new IllegalArgumentException(dir+"不是目录");
            }
            /*String[] list = dir.list();  //列出文件中的文件或者目录,不包括子目录下的
            for (String string : list) {
                System.out.println(string);
            }*/
            //如果需要遍历子目录下的内容就需要构造成对象,继续递归s
            File[] files = dir.listFiles();//返回直接子目录对象
            /*for (File file2 : files) {
                System.out.println(file);
            }*/
            if (files!=null && files.length>0) {
                for (File file : files) {
                    if (file.isDirectory()) {//如果子文件是目录
                        //递归
                        listDirectory(file);
                    }else{
                        System.out.println(file);//如果是文件则输出
                    }        
                }
            }
        }
    }
  • 相关阅读:
    HDU 5912 Fraction (模拟)
    CodeForces 722C Destroying Array (并查集)
    CodeForces 722B Verse Pattern (水题)
    CodeForces 722A Broken Clock (水题)
    CodeForces 723D Lakes in Berland (dfs搜索)
    CodeForces 723C Polycarp at the Radio (题意题+暴力)
    CodeForces 723B Text Document Analysis (水题模拟)
    CodeForces 723A The New Year: Meeting Friends (水题)
    hdu 1258
    hdu 2266 dfs+1258
  • 原文地址:https://www.cnblogs.com/Actexpler-S/p/7581466.html
Copyright © 2011-2022 走看看