基础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);
          }
      }
   }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值