Java复习IO之File类

这篇博客主要是总结一下Java中IO的File类。

1.File类的基本概念

File类:表示文件和目录路径名的抽象表示形式
File类可以实现文件的创建、删除、重命名、得到路径、创建时间等等,是唯一与文件本身有关的操作类

File类的定义

public class File 
extends Object 
implements Serializable,Comparable<File>

该类实现了Comparable接口,所以可以进行排序

2.File类的操作方法

public static final String separator
表示路径分隔符”\”,跨平台的需要

public static final String pathSeparator
表示路径分隔符,表示”;”

public File(String pathname)
构造File类实例,要传入路径

public boolean createNewFile() throws IOException
创建新文件

public boolean delete()
删除文件

public String getParent()
得到文件的上一级路径

public boolean isDictory()
判断给定的路径是否是文件夹

public boolean isFile()
判断给定的路径是否是文件

public String []list()
列出文件中的文件,返回的是一个字符串数组

public File[] listFiles()
列出文件夹中的所有文件返回的是一个文件数组

注意这两个方法的区别

在文件的操作之前新建一个File的对象的目的是创建指向要进行操作的文件的引用这一步就是确定要对哪个文件动手

public boolean mkdir()
创建新的文件夹

public boolean renameTo(File dest)
为文件重命名

public long length()
返回文件的大小

String getPath()
路径名字符串

public class FileDemo {
    public static void main(String args[])
    {
        //相当于H:\\,建议使用这种方式,适合跨平台
        //这只是指向文件的一个指针
        File file =new File("H:"+File.separator+"Mytext.txt");
        //判断文件是否存在
        if(!file.exists())
        {
            try {
                boolean b=file.createNewFile();
                System.out.println("创建文件"+b);
            }catch (IOException io)
            {
                io.printStackTrace();
            }
        }
        //删除文件
       // System.out.println(file.delete());
        //得到文件的上一级路径
        System.out.println( file.getParent());
        //判断一个路径是否是文件夹
        System.out.println("是否是目录"+file.isDirectory());
        System.out.println("是否是文件"+file.isFile());
        File file1 = new File("H:"+File.separator+"hexo");

        //列出文件夹中的所有文件名
        //list返回的是一个字符串类型的数组
        String [] fileName =file1.list();
        //使用foreach循环打印
        for (String s:fileName)
        {
            System.out.println(s);
        }
        File [] files = file1.listFiles();
        for (File file2:files)
        {
            System.out.println(file2.getPath()+"====="+file.length());
        }
        //创建一个文件夹
        File file2=new File("D:"+File.separator+"小白");
        file2.mkdir();//执行命令之后,在D盘创建了一个文件夹

        //重命名操作,renameTo的参数为一个文件对象
        File file3 = new File("D:\\xiaobai");
        file2.renameTo(file3);
    }
}

小练习:检索指定目录下指定格式文件

public class HomeWork1 {
    //使用递归算法实现文件的查找
    public static void findFile(File file,String extName)
    {
        if(file!=null)
        {
            //判断是否为目录
            if(file.isDirectory())
            {
                //获取当前目录下的所有的文件对象
                File [] files =file.listFiles();
                if(files!=null)
                {
                    for (File f:files)
                    {
                        //代码核心递归进行判断
                        findFile(f,extName);
                    }
                }
            }
            else
            {
                //递归的出口
                //当File是一个文件的时候,那么我们就进行判断
                //拓展名是否为制定的拓展名
                String path=file.getPath().toLowerCase();
                if(path.endsWith(extName))
                {
                    System.out.println(file.getPath());
                }
            }
        }
    }

    public static void main(String args[])
    {
        File file = new File("F:\\软件开发实习\\测试图片");
        String extName = ".png";
        findFile(file,extName);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值