如何用io包来操作文件(File类)?

java.io.file用来对文件进行操作
一、常用方法的实现
先了解一下构造方法
构造器描述
File​(File parent, String child)从父抽象路径名和子路径名字符串创建新的File实例。
File​(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
File​(String parent, String child)从父路径名字符串和子路径名字符串创建新的 File实例
File​(URI uri)通过将给定的 file: URI转换为抽象路径名来创建新的 File实例
现在我们用对象file用第二行的构造方法创建一个对象file(路径为d盘,因为我的电脑装了360,所以c盘有权限,拒绝访问)
 File file = new File("d://1.txt"); //存的路径为d盘,文件名为1.txt

创建一个文件:createNewFile

File file = new File("d://1.txt"); //存的路径为d盘,文件名为1.txt
        boolean b1 = file.createNewFile();   //返回的是布尔值
        System.out.println(b1?"创建成功":"创建失败");

删除一个文件:delete

(删除应小心,删除没有回收站什么的,删了就真的删了!!)

boolean b2 = file.delete();
        System.out.println(b2?"删除成功":"无此文件,删除失败!");

创建一个文件:mkdir

File file = new File("d://2.txt");
        file.mkdir();  //返回值仍然为布尔型

如果想要在一个文件夹中创建一个子文件,那么就应该用构造方法1或3。

 File file = new File("d://哈哈");
        file.mkdir();   //创建完后记得注释掉,不用二次创建
        File file1 = new File(file,"我是哈哈文件夹里的嘻嘻");  //用构造方法3,
创建一个file1对象,父类为file
        file1.createNewFile();    //用file1对象来调创建文件的方法
        File file2 = new File("d://哈哈","我是哈哈文件夹中的呜呜");
        //用构造方法1,创建一个file2对象,父类为file
        file2.createNewFile();    //用file2对象来调创建文件的方法

删除文件:delete

 file1.delete();
 file2.delete();

创建多层文件:mkdirs

File file = new File("d://哈哈/嘻嘻/呜呜"); //哈哈文件夹中的嘻嘻文件夹里的呜呜文件
file.mkdirs();

还有部分不重要的方法,在下面以代码段形式展示!!

/**
         * 返回此抽象路径名的规范路径名字符串。:
         */
        System.out.println(file1.getAbsolutePath());
        System.out.println(file1.getAbsoluteFile());
        System.out.println(file1.getPath());
        /**
         *返回此抽象路径名表示的文件或目录的名称:getName()
         */
        System.out.println(file1.getName());
        /**
         * 获取文件长度
         */
        System.out.println(file1.length());
        /**
         * 判断文件是否存在 :exists(),返回布尔类型
         */
        boolean b = file1.exists();
        System.out.println("file1存在:"+b);
        file1.delete();
        boolean b2 = file1.exists();
        System.out.println("file1存在:"+b2);
        /**
         * 判断是否是文件 isFile
         */
        boolean b3 = file2.isFile();
        System.out.println("file2是文件:"+b3);
    

方法很多,还有很多不常用的。想了解请移步jdk!

二、实现遍历文件,用文件后缀来限制输出内容

/**
 * 文件遍历案例
 */
public static void main(String[] args) throws IOException {
        File e = new File("E://");  //对象在e盘中
        File [] files1 = e.listFiles();     //遍历出e盘中的所有文件给数组files1
        listFile(files1);          //将数组files1传入listFile方法
    }

    /**
     * 文件遍历方法
     * @param files
     */
    public static void listFile(File[]files) {
        if(files != null && files.length !=0){  //判断数组是否为空
            for (File data:files) {     //遍历数组,数组里的元素叫data
                if(data.isFile()){    //判断data是否为文件
                    //文件
                    if(data.getName().endsWith(".png")){ //判断该文件的最后是不是.png
                        System.out.println("这是一张图片,放在"+data.getAbsolutePath());
                    }
                }
                else{
                    //文件夹
                   File[] data2 = data.listFiles();
                   //遍历出data文件夹中的// 所有元素存入数组data2
                   listFile(data2);  //递归调用遍历data2
                }
            }
        }
    }
}

实现遍历文件,用文件大小来限制输出内容

只需把“//文件”下面的if语句内容换成:

 if(data.length()>100*1024*1024){ //100为b,然后kb,然后m。所以此为大于100m
                        System.out.println("这是一张图片,放在"+data.getAbsolutePath());

                    }

即可!

三、相对路径和绝对路径

绝对路径:从盘符开始,是一个完整的路径。eg:c://a.txt

相对路径:在Java代码中,是相对于项目目录路径,这是一个便捷路径,在java开发中很常用。eg:a.txt(比如在idea的此代码的路径为C:\Users\YUYU\IdeaProjects\IO。所以在代码段中实现的,如下图)

{
    File file = new File("c://a.txt");  //绝对路径
    File file1 = new File("a.txt1");    //相对路径
    System.out.println("file的路径:"+file.getAbsolutePath());
    System.out.println("file1的路径:"+file1.getAbsolutePath());
}

运行结果: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值