基础IO之File文件类

File文件操作类

基本文件操作

方法 说明
public boolean exists() 测试指定路径中文件或目录是否存在
public boolean isDirectory() 判定一个文件是目录
public boolean isFile() 判定是否是文件
public boolean delete() 删除文件
public boolean createNewFile() throws IOException 创建一个新文件

检测文件是否存在

    public void test1(){
        String pathName = "E:\\java13\\io-study\\res/demo.txt";
        File file = new File(pathName);
        boolean res = file.exists();
        System.out.println("文件" + pathName + "是否存在:" + res);
    }
    //输出结果:
    //文件E:\java13\io-study\res/demo.txt是否存在:false

检测是否是目录,是否是文件并且删除

import java.io.File;
public class FileDemo {
    public static void main(String[] args){
        String path = "E:\\java13\\file\\";
        String name = "demo.txt";
        String pathname = path + name;
        File file = new File(pathname);
        boolean res = file.exists();
        System.out.println("文件" + pathname + "是否存在: " + res);
        res = file.isDirectory();
        System.out.println("文件" + pathname + "是否是目录: " + res);
        res = file.isFile();
        System.out.println("文件" + pathname + "是否是文件: " + res);
        file.delete();
        if(!file.exists()){
            System.out.println("删除文件成功!");
       }
        else{
            System.out.println("删除文件失败!");
       }
   }
}
//输出结果:
//文件E:\java13\file\demo.txt是否存在: true
//文件E:\java13\file\demo.txt是否是目录: false
//文件E:\java13\file\demo.txt是否是文件: true
//删除文件成功!

创建新文件

import java.io.File;
import java.io.IOException;
public class FileDemo {
    public static void main(String[] args) throws IOException {
        String path = "E:\\java_code\\file\\";
        String new_name = "demo1.txt";
        String pathname = path + new_name;
        File file = new File(pathname);
        if(!file.exists()){ //注意'!', 表示取反
            try {
                //有创建失败的风险,需要捕捉异常,异常如果不了解,可以先使用,不必关心细节
                file.createNewFile(); 
           }catch (IOException e){ //文件部分异常,常见为IOException
                System.out.println("文件" + pathname + "创建失败");
                //e.printStackTrace();
           }
       }
        else{
            System.out.println("文件" + pathname + "已经存在,不需创建");
       }
   }
}

编写文件的基本操作
如果文件不存在,则创建,存在则删除

import java.io.File;
import java.io.IOException;
public class FileDemo {
    public static void main(String[] args) throws IOException {
        String path = "E:\\java_code\\file\\";
        String new_name = "demo.txt";
        String pathname = path + new_name;
        File file = new File(pathname);
        if(file.exists()){
            //文件存在,删除
            file.delete();
            System.out.println("文件" + pathname + "存在,删除之");
       }
        else{
            //文件不存在,创建
            try {
                file.createNewFile(); //有创建失败的风险,需要捕捉异常
                System.out.println("文件" + pathname + "不存在,创建之");
           }catch (IOException e){ //文件部分异常,常见为IOException
                System.out.println("文件" + pathname + "创建失败");
                e.printStackTrace();
           }
       }
   }
}

目录操作

方法 说明
public boolean mkdir() 创建一个空目录
public boolean mkdirs() 创建目录
public String getParent() 取得父路径
public File getParentFile() 取得父File对象

创建指定一个或者多个目录的路径

import java.io.File;
import java.io.IOException;
public class FileDemo {
    public static void main(String[] args) throws IOException {
        String path = "E:\\java_code\\file\\";
        String dir_name = "demo_dir"; //想要创建的目录
        //String dir_name = "demo_dir\\dir1\\dir2\\dir3"; //想要创建的目录路径
        String pathname = path + dir_name;
        File file = new File(pathname);
        if(!file.exists()){
            file.mkdir(); //创建一个空目录
            //file.mkdirs(); //创建一个可能具有多个目录的路径
       }
        else{
            System.out.println("路径已经存在,不需创建");
       }
   }
}

获取父路径

import java.io.File;
import java.io.IOException;
public class FileDemo {
    public static void main(String[] args) throws IOException {
        String path = "E:\\java_code\\file\\";
        String dir_name = "demo_dir\\dir1\\dir2\\dir3";
        String pathname = path + dir_name;
        File file = new File(pathname);
        System.out.println(file.getParent());
   }
}
//结果:
//E:\java_code\file\demo_dir\dir1\dir2

获取父目录 File 对象,并在父目录下,创建文件demo.java

import java.io.File;
import java.io.IOException;
public class FileDemo {
    public static void main(String[] args) throws IOException {
        String path = "E:\\java_code\\file\\";
        String dir_name = "demo_dir\\dir1\\dir2\\demo.java";
        String pathname = path + dir_name;
        File file = new File(pathname);
        File pfile = file.getParentFile(); //获取父目录File对象
        if(!pfile.exists()){//检测路径是否存在,不存在创建
            pfile.mkdirs();
            //获取File对象的绝对路径,后面学,这个先用起来
            System.out.println("路径" + pfile.getAbsolutePath() + "不存在,创建");
       }
        if(!file.exists()){
           file.createNewFile();
       }
   }
}
//结果:
//路径E:\java_code\file\demo_dir\dir1\dir2不存在,创建

文件属性操作

方法 说明
public long length() 取得文件大小(字节)
public long lastModified() 最后一次修改日期

取得文件信息

import java.io.File;
import java.io.IOException;
import java.util.Date;
public class FileDemo {
    public static void main(String[] args) throws IOException {
        String path = "E:\\java_code\\file\\";
        String name = "demo.txt";//可以替换成你想检测的文件
        String pathname = path + name;
        File file = new File(pathname);
        if(!file.exists()){
            file.createNewFile();
       }
        System.out.println("文件 " + name + "size : " + file.length());
        System.out.println("文件 " + name + "最近修改时间: " +  new
Date(file.lastModified()));
   }
}
//结果:
//文件 demo.txtsize : 3
//文件 demo.txt最近修改时间: Sun Aug 11 15:50:47 CST 2019

其他操作

方法 说明
public File[] listFiles() 列出一个目录指定的全部组成

列出desktop中的全部组成

import java.io.File;
import java.io.IOException;
import java.util.Date;
public class FileDemo {
    public static void main(String[] args) throws IOException {
        // 要操作的文件
        File file = new File("C:\\Users\\whb\\Desktop");
        // 保证是个目录且存在
        if (file.exists() && file.isDirectory()) {
        //列出目录中的全部内容
        File[] result = file.listFiles();
        for(File file2 : result){
          System.out.println(file2);
          }
      }
   }
}

猜你喜欢

转载自blog.csdn.net/qq_43452252/article/details/105694396