文件和流

1.File 类在java程序中,对磁盘文件进行描述的类。文件和目录路径名的抽象表示形式。

FileDemo1

                                 文件与文件夹的创建方法以及它们的方法的使用

public class Demo1 {
    public static void main(String[] args) {
        //创建file对象
        File file = new File("F:\\");
        File file1 = new File(file,"filetest");
        File file2 = new File("F:\\filetest");
        File file3 = new File("F:\\filetest\\myself");
        File file4 = new File("F:\\filetest\\myself\\test.txt");
        //判断文件是否存在
        boolean b = file.exists();
        System.out.println(b);//true
        System.out.println(file1.exists());//true
        System.out.println(file2.exists());//true
        System.out.println(file3.exists());//false
        //创建文件夹及文件
        boolean b1 = file3.mkdirs();//或者file3.mkdir(创建一级目录)
        System.out.println(b1);//true,成功创建文件夹(若存在则创建失败)
        try {
            boolean b2 = file4.createNewFile();//有异常要捕获或者抛出
            System.out.println(b2);//成功创建文件(若存在则创建失败)

        } catch (IOException e) {
            e.printStackTrace();
        }
        //删除文件或者文件夹delete
        boolean b3 = file4.delete();
        System.out.println(b3);//成功删除test.txt
        boolean b4 = file3.delete();//成功删除文件夹(注:只有文件夹为空的时候才能被删除)

    }
}

FileDemo2

获得文件的路径-----------代码里有注释///

public class Demo2 {
    public static void main(String[] args) throws Exception{
        File file = new File("hello.txt");//相对路径,在项目下
        System.out.println(file.getPath());//获得文件相对路径:hello.txt
        System.out.println(file.getAbsolutePath());//获得文件绝对路径:d:\软件\IdeaProjects\qfstudy_08_09\hello.txt
        System.out.println(file.getCanonicalPath());//获得文件的标准路径:D:\软件\IdeaProjects\qfstudy_08_09\hello.txt
        //获得文件的父路径
        File file1 = new File("F:\\filetest\\hao\\111.txt");
        String parent = file1.getParent();
        System.out.println(parent);
        //在同级目录下创建文件hellojava.txt
        File file2 = new File(parent, "hellojava.txt");
        System.out.println(file2.createNewFile());//true成功创建
    }
}

FileDemo3

对一个文件的各种判断

public class Demo3 {
    public static void main(String[] args) {
        File file = new File("F:\\filetest\\hao\\hellojava.txt");
        File file1 = new File("F:\\filetest\\hao");
        //判断一个File对象是否是文件夹isDirectory
        System.out.println(file.isDirectory());//false不是文件夹
        System.out.println(file1.isDirectory());//true是文件夹
        //判断一个File对象是否是文件isFile
        file.isFile();
        //判断一个File对象是否是绝对路径
        file.isAbsolute();
        //判断一个File对象是否隐藏
        file.isHidden();
        //获得文件夹中所有的子文件和文件夹的路径(字符串形式)
        String[] list = file1.list();
        //(File对象形式)
        File[] files = file1.listFiles();
        System.out.println(Arrays.toString(files));
        //对文件重命名(必须保证文件是存在的)
        File file2 = new File("F:\\filetest\\hao\\hi.txt");
        System.out.println(file.renameTo(file2));
        System.out.println(file.getName());

    }
}

FileTest

实现一个小案例-------递归实现文件夹的遍历和删除操作

public class Demo4 {
    public static void main(String[] args) throws Exception{
        File file = new File("F:\\filetest");
        int level = 0;
        bianliFile(file,level);
        Thread.sleep(5000);
        deleteFile(file);
        System.out.println("删除成功");

    }
    public static void bianliFile(File file,int level){
        level(level);
        System.out.println(file.getName());
        level++;
        File[] files = file.listFiles();
        if(files!=null&&files.length>0){
            for (File file1 : files) {
                if (file1.isDirectory()){//如果是文件夹则递归调用遍历方法
                    bianliFile(file1, level);
                }else {
                    level(level);
                    System.out.println(file1.getName());
                }
            }
        }

    }
    public static void level(int level){
        for (int i = 0; i < level; i++) {
            System.out.print("\t");
        }

    }
    public static void deleteFile(File file){
        File[] files = file.listFiles();
        if(files!=null&&files.length>0){
            for (File file1 : files) {
                if (file1.isDirectory()){//如果是文件夹则递归调用删除方法
                 deleteFile(file1);
                }else {
                    file1.delete();
                }
            }
        }
        file.delete();//子文件全部删除后可以把文件夹删除了
    }

}

熟悉与掌握这几种对文件的操作对接下来学习流有一定的帮助!!!

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值