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);//如果是文件则输出
                }        
            }
        }
    }
}
原文地址:https://www.cnblogs.com/Actexpler-S/p/7581466.html