小滴课堂-学习笔记:(10) Java进阶核心之File文件和目录

56 篇文章 0 订阅
33 篇文章 0 订阅

logo 愿景:"让编程不再难学,让技术与生活更加有趣"


更多架构课程请访问 xdclass.net

第1集 计算机文件和路径介绍

简介:介绍计算机文件知识和路径目录

  • 什么是计算机文件(File)

    • 以计算机硬盘为载体存储在计算机上的信息集合,可以是文本、图片、视频、程序等,文件一般有拓展名,表示文件的类型

  • 文件目录 (Directory)

    • 就是我们一般称呼的文件夹,为了便于对文件进行存取和管理

    • 文件目录是由文件目录项组成的。文件目录分为一级目录、二级目录和多级目录。多级目录结构也称为树形结构,在多级目录结构中,每一个磁盘有一个根目录,在根目录中可以包含若干子目录和文件,在子目录中不但可以包含文件,而且还可以包含下一级子目录

    • 掌握了基础后的可以去了解Linux文件系统,涉及到的东西更多,推荐是有一定的基础再看

  • 区分两个斜杠

    1、斜杠:"/" 与 反斜杠:"\" 
    ​
    2、反斜杠(\)是一个特殊的字符,被称为转义字符,用来转义后面一个字符。转义后的字符通常用于表示一个不可见的字符或具有特殊含义的字符,比如 \n 则表示换行,\?问号 ,\" 则表示双引号,\' 表示一个单引号 等
    ​
    3、在Java中的字母前面加上反斜线"\"来表示常见的那些不能显示的ASCII字符,我们称之为转义字符
    ​
    4、例子:需要输出双引号的一段话
        String title = " \"这个是带双引号的标题\" ";
    ​
    5、转义的详情参看 https://baike.baidu.com/item/%E8%BD%AC%E4%B9%89%E5%AD%97%E7%AC%A6/86397?fr=aladdin
    

     

  • 相对路径

    • 相对某个基准目录或者文件的路径, ./ 表示当前路径; ../ 表示上级目录

  • 绝对路径

    • 存储在硬盘上的真正路径

  • window路径分割符

    • \ 表示windows系统文件目录分割符

    • 如果是Java代码在window下写某个文件的话需要 下面的方式

      D:\\soft\\xdclass.txt
      因为单斜杠是用来转义的

       

  • Linux和Mac路径分割符(开发人员推荐使用)

    • / 表示 Linux或者Mac的路径分隔符

    • 如果是Java代码在Linux或者Mac下写某个文件的话需要 下面的方式

      /usr/soft/xdcalss.net

       

  • 常见的文件

    • 文本 txt

    • 图片 jpg、png、jpeg

    • excel、csv等

    • tar.gzip 、zip

 

 

第2集 java核心知识之File类讲解

简介:介绍File类和相关API讲解

  • 程序代码和文件目录的关系:主要就是对文件和目录进行增删改查,俗称CRUD

  • 简单了解IO,即Input/Output

    • 把内存的中数据存储到持久化设备到上的动作称为输出,Output 操作

    • 把持久化设备的数据读取到内存中的动作称为输入,Input操作

    • 一般把输入和输出的动作称为IO操作,IO也分网络IO,文件IO

  • java文件类File:

    • 主要是计算机文件和目录的操作,即对文件的和目录的增删改查

    • File类表示磁盘中存在的文件和目录

    • File类的包名是java.io,也实现了Serializable, Comparable两大接口以便于其对象可序列化和比较

    • File.separator 目录分隔符,在不同的系统下不一样, windows和 mac /Linux

  • 常见的构造函数

    ​
    //路径和文件拼接
    public File(String pathname)
    ​
    ​
    //父路径,子路径
    public File(String parent, String child)
    ​
    ​
    //测试方法:文件的路径,即new File构造函数传入的路径
    String getPath()

     

  • 常见方法

            String dir = "C:\\Users\\79466\\Desktop\\;
    ​
            String name = "a.txt";
            File file = new File(dir, name);
            //File file = new File(dir);
    ​
    ​
            //文件的 查询和判断
            System.out.println(File.separator);
            System.out.println("基本路径 getPath()= " + file.getPath());
            System.out.println("文件名 getName()= " + file.getName());
            System.out.println("绝对路径 getAbsolutePath = " + file.getAbsolutePath());
            System.out.println("父路径名 getParent() = " + file.getParent());
            System.out.println("是否是绝对路径 isAbsolute() = " + file.isAbsolute());
            System.out.println("是否是一个目录 isDirectory() = " + file.isDirectory());
            System.out.println("是否是一个文件 isFile() = " + file.isFile());
            System.out.println("文件或目录是否存在 exists() = " + file.exists());
    ​
    ​
            System.out.println("目录中的文件和目录的名称所组成字符串数组 list() ");
            String[] arr = file.list();
            for (String temp : arr) {
                System.out.println(temp);
            }
    ​
    ​
            //创建指定的目录
            File mkdirFile = new File(dir + "/testdir");
            mkdirFile.mkdir();
    ​
    ​
            //创建多个层级的目录
            File mkdirsFile = new File(dir + "/testdirs/test/dd");
            mkdirsFile.mkdirs();
    ​
    ​
    //        //创建一个新的文件
            File newFile = new File(dir + "/testdir/newfile1.txt");
            try {
                newFile.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
    ​
    ​
            //删除文件
            newFile.delete();
    

     

  • 注意:File的构造函数只是创建一个File实例,即使目录错误也不出报错,因为没对文件进行操作

 

第3集 本章课程作业练习题布置

简介: 根据本章知识点布置课程作业

  • 封装一个方法,传入一个路径,则在此路径下创建test文件夹

  • 然后在 test目录下创建10个文件夹,名称是1~10,然后再各个文件夹里面创建一个txt文本文件, 名称也是1~10命名,重复调用此方法的话结果一样。

test/
    1/
        1.txt
    2/
        2.txt
    3/
    ...


第4集 本章课程作业常见问题和答案解析

简介: 讲解课程作业常见问题和答案解析

  • 封装一个方法,传入一个路径,则在此路径下创建test文件夹

  • 然后在 test目录下创建10个文件夹,名称是1~10,然后再各个文件夹里面创建一个txt文本文件, 名称也是1~10命名,重复调用此方法的话结果一样。

test/
    1/
        1.txt
    2/
        2.txt
    3/
    ...


答案代码

public static void main(String[] args) throws IOException {
​
        String path ="C:\\Users\\79466\\Desktop;
​
        createDir(path);
    }
​
    public static void createDir(String path) throws IOException {
​
        String root = path + File.separator + "test";
        File rootDir = new File(root);
        if (!rootDir.exists()) {
            rootDir.mkdirs();
        }
​
        for (int i = 0; i < 10; i++) {
​
            String dirPath = root + File.separator + (i + 1);
            File dirFile = new File(dirPath);
            if (!dirFile.exists()) {
                dirFile.mkdir();
                String txtPath = dirPath + File.separator + (i + 1) + ".txt";
                File txtFile = new File(txtPath);
                if (!txtFile.exists()) {
                    txtFile.createNewFile();
                }
            }
        }
​
    }


干货文档

                                                        关注公众号发送:“CSDN干货文档”  即可领取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dev666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值