File类小结

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。File类小结,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

File类

File类 可以表示文件, 也可以表示文件夹

 File file = new File("C:\\user\\a.txt");
 System.out.println(file);

控制台有如下输出:
C:\user\a.txt
由此可见,File仅仅只是表示一个文件路径,操作文件的事情交给IO流来完成

File类的常见API

  1. createNewFile():创建一个File
  2. exists():判断文件是否存在
  3. mkdir():来创建文件夹
  4. File.separator:根据操作系统选择对应的路径分隔符
//File 可以表示文件, 也可以表示文件夹
// 想要在哪里创建一个名字为什么的文件
public void test1() throws IOException {
        //File 可以表示文件, 也可以表示文件夹
        File file = new File("C:\\Users\\huangjinjin\\Desktop\\a");
        File file2 = new File("C:\\Users\\huangjinjin\\Desktop", "hahahah.txt");
        System.out.println(file2);
        File parent = new File("C:"+File.separator+"Users"+File.separator+"huangjinjin/Desktop");
        File file3 = new File(parent, "xi\\ha\\he");
        System.out.println(file3);

        // file 只是表示路径,文件不一定存在
        if(!file.exists()){//exists 判断文件是否真的存在
            // 不存在则想要创建一个文件
            boolean b = file.createNewFile();
            System.out.println(b);
        }
        // 创建文件夹
        file3.mkdirs();// mkdirs 创建多级目录
    }

以及以下常用的API操作:

  1. 绝对路径 C:\Deskto\…
  2. 相对路径 相对于当前工程的路径
File file = new File("a.txt");

        file.createNewFile();
        System.out.println("得到文件的名字"+file.getName());
        System.out.println("相对路径:"+file.getPath());
        System.out.println("绝对路径:"+file.getAbsolutePath());
        System.out.println("得到父级目录String"+file.getParent());
        System.out.println("得到父级目录File"+file.getParentFile());


        System.out.println("文件是否可读"+file.canRead());
        System.out.println("文件是否可写"+file.canWrite());
        System.out.println("文件是否是隐藏文件"+file.isHidden());


        System.out.println("判断是否是文件夹"+file.isDirectory());
        System.out.println("判断是否是文件"+file.isFile());

        // 此方法不能对文件夹起作用
        System.out.println("文件内容长度"+file.length());

        //文件名字重命名
        File file2 = new File("b.txt");
        boolean b2 = file.renameTo(file2);
        System.out.println(b2);

        // 以后如果还要操作b.txt ,则必须用file2   因为file代表的a.txt不存在了
        file2.delete();

此外还要注意:

删除操作和重命名操作  操作的文件如果被使用着的话则操作失败

打印指定路径下的所有文件

  1. 使用while循环完成文件夹里面文件的遍历
public static void main(String[] args) {
        String filePath = "D:\\BaiduNetdiskDownload\\dailyLearning\\src\\com\\llm\\test";
        //循环得到文件夹
        File file = new File(filePath);
        Stack<File> stack = new Stack<>();
        stack.push(file);
        while (!stack.isEmpty()){
            File pop = stack.pop();
            File[] files1 = pop.listFiles();
            for (File f:
                 files1) {
                if(f.isDirectory()){
                    stack.push(f);
                }else {
                    System.out.println(f);
                }
            }
        }
    }
  1. 使用递归完成文件的遍历
public static void main(String[] args) {
        String filePath = "D:\\BaiduNetdiskDownload\\dailyLearning\\src\\com\\llm\\test";
        listAll(filePath);
    }

    public static void listAll(String filePath){
        File file = new File(filePath);
        if (file == null){
            return;
        }
        File[] files = file.listFiles();
        for (File f :
                files) {
            if (f.isDirectory()){
                listAll(f.getPath());
            }else {
                System.out.println(f.getAbsolutePath());
            }
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/202488.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!