File学习

File–文件的创建、删除、重命名 文件夹的创建、删除、重命名、遍历文件夹

file文件的创建

file的创建,我们用的是f.createNewFile()方式

import java.io.File;
import java.io.IOException;


public class Files {
    /**
     * @param args
     * 文件的创建
     */

    public static void main(String[] args) {
        // TODO Auto-generated method stub
         File f = new File("d://hello.txt");

         //判断文件是不是存在的,因为我没有创建这里肯定是不存在的
         if(f.exists()){
             System.out.println("获取文件的路径"+f.getPath());
             System.out.println("是否是文件"+f.isFile());
             System.out.println("是否是是个目录件"+f.isDirectory());     
         }else{
             System.out.println("文件不存在");
             //如果不存在就创建此文件
             try {
                 //创建用的是下面的createNewFile()方法
                f.createNewFile();
                System.out.println("文件创建成功");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                System.out.println("文件创建失败");
            }

         }
    }

}

file文件的属性

public class Filesfrist {
    /**
     * @param args
     * 文件的创建
     */

    public static void main(String[] args) {
        // TODO Auto-generated method stub
         File f = new File("d://hello.text");

         if(f.exists()){
             //判断文件是否存在
             System.out.println("文件是否存在   :"+ f.exists());
           //读取文件名称
             System.out.println("读取文件名称   :"+ f.getName());
           //读取文件路径
             System.out.println("读取文件路径   :"+  f.getPath());
           //读取文件绝对路径
             System.out.println("读取文件绝对路径   :"+ f.getAbsolutePath());
           //读取文件父级路径
             System.out.println("读取文件父级路径   :"+ f.getParent());
             //建议用下面这个写法,比较严谨
             System.out.println("读取文件父级路径   :"+ new File( f.getAbsolutePath()).getParent());
           //读取文件大小
             System.out.println("读取文件大小   :"+ (float)f.length()/1000+"kb");
           //读取文件是否被隐藏
             System.out.println("读取文件是否被隐藏   :"+ f.isHidden());

           //判断文件是否可读
             System.out.println("判断文件是否可读   :"+ f.canRead());
           //判断文件是否可写
             System.out.println("文件是否可写   :"+ f.canWrite());
           //判断文件是否为文件夹   
             System.out.println("是否为文件夹   :"+ f.isDirectory());
         }else {
            try {
                f.createNewFile();
                 System.out.println("文件创建成功");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                 System.out.println("文件创建失败");
            }
        }
    }

}

file文件的删除

file文件的删除用的是f.delete()方法

import java.io.File;
import java.io.IOException;
public class Files02 {
    /**
     * @param args
     * 文件的删除
     */
    public static void main(String[] args) {

         File f = new File("d://hello.txt");

         //判断文件是不是存在的,因为我没有创建这里肯定是不存在的
         if(f.exists()){
             f.delete();
             System.out.println("文件删除成功");
         }else{
             System.out.println("文件不存在");
             //如果不存在就创建此文件
             try {
                 //创建用的是下面的createNewFile()方法
                f.createNewFile();
                System.out.println("文件创建成功");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                System.out.println("文件创建失败");
            }
         }
    }
}

file修改文件的名称

import java.io.File;
import java.io.IOException;
public class Files03 {
    /**
     * @param args
     * 文件修改名称
     */
    public static void main(String[] args) {

           File f = new File("d://hello.txt");
             if(f.exists()){        
                 //把hello.ext文件名称修改为newhello.txt
                 File file = new File("d://newhello.txt");
                 f.renameTo(file);
                 System.out.println("文件名称修改成功");

             }else{
                 System.out.println("文件不存在");
                 //如果不存在就创建此文件
                 try {
                     //创建用的是下面的createNewFile()方法
                    f.createNewFile();
                    System.out.println("文件创建成功");
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    System.out.println("文件创建失败");
                }
             }
    }
}

file文件移动位置

注意:

import java.io.File;
import java.io.IOException;


public class Files04 {
    /**
     * @param args
     * 文件的移动
     * 同一个磁盘中才可以,苹果系统无此要求
     */
    public static void main(String[] args) {

           File f = new File("d://yidonghello.txt");
         if(f.exists()){        
             //上面已经存在了文件newhello.txt。我们移动到d://data//newhello.txt
             File file = new File("d://data//yidonghello.txt");
             f.renameTo(file);
             System.out.println("文件移动成功");

         }else{
             System.out.println("文件不存在");
             //如果不存在就创建此文件
             try {
                 //创建用的是下面的createNewFile()方法
                f.createNewFile();
                System.out.println("文件创建成功");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                System.out.println("文件创建失败");
            }
         }
    }
}

file之——单个文件夹的创建

创建单个文件夹用的是f.mkdir()

注意:f.mkdir()不能创建多层文件夹,例如helloholder/one/two就会报错。

import java.io.File;
import java.io.IOException;


public class Files_folder01 {
    /**
     * @param args
     * 单个文件夹的创建
     */
    public static void main(String[] args) {

        File f = new File("d://helloholder");
        /*
         * 注意:f.mkdir()不能创建多层文件夹,例如helloholder/one/two就会报错。以为他只能创建helloholder文件夹,不能创建one,
         * 更不会创建one文件夹中的two文件夹
         * 
         * 文件夹的创建和文件的创建是有很大区别的
         * 文件的创建时用的是:"f.createNewFile()"
         * 文件夹的创建时用的是:"f.mkdir();"
         * */
        //第一次,创建文件夹,肯定会是创建文件成功,如果再次运行,因为此文件夹已经存在,所以不会重复创建
        if(f.mkdir()){
          System.out.println("文件夹创建成功");
        }else {
            if(f.exists()){
                System.out.println("文件夹已经存在,所以不用创建");
            }else {
                System.out.println("文件夹创建失败");
            }
        }
    }
}

file之——多个文件夹的创建

1、多个文件夹文件夹的创建用的是f.mkdirs()

2、单个文件的创建时用的是:”f.mkdir()”

3、文件夹的创建时用的是:”f.mkdirs();”

import java.io.File;
import java.io.IOException;


public class Files_folder02 {
    /**
     * @param args
     * 多层文件夹的创建
     * 我们创建一个D盘helloholder文件夹--one文件夹--two文件夹
     */
    public static void main(String[] args) {

        File f = new File("d://helloholder//one//two");
        /* 
         * 多层文件夹的创建和单个文件的创建也是有很大区别的
         * 单个文件的创建时用的是:"f.mkdir()"
         * 文件夹的创建时用的是:"f.mkdirs();"
         * */
        //多层文件夹创建
        if(f.mkdirs()){
          System.out.println("多层文件夹创建成功");
        }else {
            if(f.exists()){
                System.out.println("多层文件夹已经存在,所以不用创建");
            }else {
                System.out.println("多层文件夹创建失败");
            }
        }
    }
}

file之——修改某个文件夹的名称

import java.io.File;
import java.io.IOException;


public class Files_folder03 {
    /**
     * @param args
     * 多层文件夹中文件名称的修改
     * 文件夹的名称由helloholder 改变为 helloholder_new
     * 文件夹的名称由two 改变为 two_new
     */
    public static void main(String[] args) {

        //------------------------------------------01,--------------------------------------------//
        // 文件夹的名称由helloholder 改变为 helloholder_new
//      File f = new File("d://helloholder");
//      File folder = new File("d://helloholder_new");
//      
//      if(f.renameTo(folder)){
//          System.out.println("文件夹的名称由helloholder 改变为 helloholder_new");
//      }else {
//          System.out.println("文件夹的名称修改失败");
//      }

      //------------------------------------------02,--------------------------------------------//

        // 文件夹的名称由two 改变为 two_new
        File f = new File("d://helloholder_new//one//two");
        File folder = new File("d://helloholder_new//one//two_new");

        if(f.renameTo(folder)){
            System.out.println("文件夹的名称由two 改变为 two_new");
        }else {
            System.out.println("文件夹的名称修改失败");
        }

    }
}

file之——文件夹删除

注意:文件夹删除,只能删除空的文件夹。

import java.io.File;
import java.io.IOException;


public class Files_folder04 {
    /**
     * @param args
     * 文件夹删除
     * 注意,只能删除空的文件夹,如果里面有内容无法删除。
     */
    public static void main(String[] args) {

        // 1、我们指定路径
        File f = new File("d://deletefile//one//two_new");

        if (f.exists()) {
            //3、指定我们删除的文件夹路径,前提文件夹中没有内容
            //在这里如果删除one就不可以,因为one中包含了two_new文件夹。
            //这里我们删除最底层的two_new。就会删除成功
             File fs = new File("d://deletefile//one//two_new");

             if(fs.delete()){
                 System.out.println("two_new文件夹删除成功"); 
             }else {
                 System.out.println("two_new文件夹删除失败"); 
            }

             fs.delete();
        }else {
            //2、没有就创建。然后在运行查看是否移动
            f.mkdirs();
            System.out.println("文件夹创建成功");
        }
    }
}

file之——文件夹移动

import java.io.File;
import java.io.IOException;


public class Files_folder05 {
    /**
     * @param args
     * 多层文件夹中的移动
     * 文件夹two_new上移一层。如果two_new下面还有文件夹,也会和它一起移动到制定的位置
     * 注意:必须是同一分区。
     */
    public static void main(String[] args) {

        // 1、实现我们创建的文件夹two_new上移一层,和one同级
        File f = new File("d://helloholder_new//one//two_new");

        if (f.exists()) {
            //如果文件夹已经存在,就直接移动
             File folder = new File("d://helloholder_new//two_new");

            if(f.renameTo(folder)){
                System.out.println("文件夹移动成功");
            }else {
                System.out.println("文件夹移动失败");
            }
        }else {
            //没有就创建。然后在运行查看是否移动
            f.mkdirs();
            System.out.println("文件夹创建成功");
        }
    }
}

file之——遍历文件夹

import java.io.File;
import java.io.IOException;


public class Files_traverse {
    /**
     * @param args
     * 遍历文件夹
     */
    public static void main(String[] args) {
        /*
         *1、我创建了一个文件夹,在D:\data 
         *2、data文件夹我创建了两个txt文件和三个文件夹,其中one文件夹有一个txt文件
         *3、我要把这些txt都打印出来
         */
        printfile(new File("D://data"),1);

    }

    //我们先写一个遍历的方法
    public static void  printfile(File dir,int tab) {
        //如果是文件夹,我们就对这个文件夹进行处理
        if(dir.isDirectory()){
            //通过dir.listFiles()获取到文件夹下的所有文件,并且放在一个数组中
            File next[] = dir.listFiles();

            //遍历数组
            for (int i = 0; i < next.length; i++) {
                for (int j = 0; j < tab; j++) {
                    System.out.print("|--");
                }


                //如果是文件就直接打印出来,如果是文件夹就遍历文件夹下的文件
                System.out.println(""+next[i].getName());
                if(next[i].isDirectory()){
                    printfile(next[i],tab+1);
                }
            }
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值