1、 File

  文件和目录路径名的抽象表示形式。

  一个File类对象就代表了一个文件或文件夹。

  1.1 File类的作用

    用来操作硬盘上的文件或文件夹

    绝对路径:一般是以盘符开始的,比如:C:/Java/aaa.png。特点:在系统中具有唯一性。

    相对路径:相对于某个位置而言,比如:java/bbb.png。特点:在系统中不具有唯一性

在java中,默认的相对位置是当前项目的根目录

  1.2 File 类常用构造方法

    public File​(String pathname)   //根据文件名创建文件

    public File​(String parent,String child)   //根据父路径字符串和子路径字符串创建文件对象

    public File​(File parent,String child)   // 从父抽象路径名和子路径名字符串创建新的 File实例。


  1.3 路径分隔符、名称分隔符

    1.3.1 路径分隔符

    public static final String pathSeparator  //与系统相关的路径分隔符字符

    不同的操作系统有不同的路径分隔符:

      Mac和Linux是 :

      Windows是   ;

    1.3.2 名称分隔符

    public static final String separator   //与系统相关的名称分隔符字符

      Mac和Linux是 /

      Windows是   \

      JDK 1.5后,Windows用\来表示路径分隔符都可以

  1.4跟获取相关方法

    public String getAbsolutePath​()         获得绝对路径

    public String getPath​()             获得创建文件对象的指定的文件路径名字符串

    public String getName​()          获取文件名

    public long length​()                 获取文件的大小,单位为字节。如果关联路径的文件不存在,返回为零。只能获得文件的大小,不能获取文件夹的值。

                      获取文件夹的的返回值就是一个垃圾值。

    public File getParentFile​()        获得父路径文件对象

  

  1.5跟判断相关方法

    public boolean exists​()           判断文件是否存在

  public boolean isDirectory​()        判断文件是否是目录

    public boolean isFile​()            判断文件是否是普通文件

  1.6跟创建和删除相关方法

     public boolean createNewFile​() //创建文件,创建成功返回true,如果创建成功,返回true。如果文件存在,则什么也不发生,返回false
        public boolean mkdir​()       //创建单级文件夹。创建成功返回true,创建失败返回false。如果文件夹存在,则什么也不发生,返回false。只能用在文件夹
        public boolean delete​()      //删除文件和文件夹,如果是文件夹,只能删除空文件夹
        public boolean mkdirs​()      //创建多级文件夹. 创建成功返回true,创建失败返回false。如果文件夹存在,则什么也不发生,返回false。只能用在文件夹
 

1.7遍历目录相关

  public String[] list​()       返回一个字符串数组,表示该File目录中的所有子文件或目录

  public File[] listFiles​()     获取文件夹下的所有文件(子文件夹和普通文件),返回文件对象数组

2. 递归

                 

2.1什么是递归?方法自身调用方法自身。

     例子:递归求阶乘

      • 阶乘:所有小于及等于该数的正整数的积。
      • n的阶乘:n! = n * (n-1) * (n-2) * ... * 3 * 2 * 1          

递归分类:

直接递归:方法A调用方法A

间接递归:方法A调用方法B,方法B调用方法C,方法C调用方法A

       2.2递归的注意事项:

              递归必须要有出口:结束递归的条件

3. Filter文件过滤器

FileFilter是一个接口,只要是实现了该接口的实现类对象就是一个文件过滤器。

  3. 1 File类与文件过滤器相关的方法

    public File[] listFiles​(FileFilter filter)

    accept方法的调用时机:

    每当获取到文件夹下的每一个文件或子文件夹时,都会将该文件或文件夹封装成File对象,然后将该File 对象作为参数调用文件过滤器的access方法。

    Access方法返回值的作用;

    返回false,代表传递过来的文件需要过滤掉

    返回true,代表接受文件

4. 补充知识点

Scanner类的next方法nexLine方法的不同点比较:

  a)next/nextInt/nextDouble

    扫描结束的标记是回车、tab键、空格

    在扫描到第一个有效字符之前会自动过滤掉结束标记符:回车、tab键、空格

    不会过滤掉扫描结束的回车

  b)nextLine

    扫描结束标记标记是回车,会过滤扫描结束的回车符

day008-File文件的更多相关文章

  1. FILE文件流的中fopen、fread、fseek、fclose的使用

    FILE文件流用于对文件的快速操作,主要的操作函数有fopen.fseek.fread.fclose,在对文件结构比较清楚时使用这几个函数会比较快捷的得到文件中具体位置的数据,提取对我们有用的信息,满 ...

  2. File文件的使用

    线程的停止: 1.停止一个线程一般是通过一个变量来控制 2.如果需要停止一个处于一个等待状态的线程,那么需要配合interrupture方法来完成 守护线程:(后台线程):在一个进程中只剩下守护线程, ...

  3. Python学习(16)File(文件)方法

    Python File(文件) 方法 file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 序号 方法及描述 1 file.close() 关闭文件.关闭后文件不能再进行读 ...

  4. android内核读取file文件

    内核读取file文件的方法: char* file_read(const char * file_path) { struct file *file = NULL; //保存打开文件的文件指针变量 s ...

  5. Java文件操作二:File文件的方法

    一.文件的判断方法 判断方法 .boolean canExecute()判断文件是否可执行 .boolean canRead()判断文件是否可读 .boolean canWrite() 判断文件是否可 ...

  6. Java file文件的写入和读取及下载

    File文件的写入 一.FileWriter 和BufferedWriter 结合写入文件 FileWriter是字符流写入字符到文件.默认情况下,它会使用新的内容代替文件原有的所有内容,但是,当指定 ...

  7. js 实现 input type="file" 文件上传示例代码

    在开发中,文件上传必不可少但是它长得又丑.浏览的字样不能换,一般会让其隐藏点其他的标签(图片等)来时实现选择文件上传功能 在开发中,文件上传必不可少,<input type="file ...

  8. file和file文件流

    **io流是程序中比较常用的功能,基本上涉及到文件上传下载的都要用到这功能,比如上传头像,上传附件等等. 对于一个java程序员来说,io流也是必须掌握的,因此这里对比较常用的或者说曾经用过的方法进行 ...

  9. js获取input file文件二进制码

    <html> <body> <img id="image"src=""/> <br/> <input ty ...

  10. js 图片base64转file文件的两种方式

    js 图片base64转file文件的两种方式 https://blog.csdn.net/yin13037173186/article/details/83302628 //将base64转换为bl ...

随机推荐

  1. Modular Inverse (拓展欧几里得求逆元)

    The modular modular multiplicative inverse of an integer a modulo m is an integer xsuch that a-1≡x ( ...

  2. UVALive - 3722 找规律

    题意:找规律 题解:找规律 结论是\(a^n(x-1)-\sum_{i=1}^{n-1}a^i \mod\ c\) #include<iostream> #include<algor ...

  3. HDU - 4291 循环节

    还有这种操作? #include<bits/stdc++.h> #define rep(i,j,k) for(register int i=j;i<=k;i++) #define p ...

  4. web 页面 验证码 实现

    1. 前台页面代码:  页面刷新时会自动请求 ${pageContext.request.contextPath}/yanzheng?yz=&time=-1111 这个action <f ...

  5. PHP sprintf() 函数

    PHP sprintf() 函数 先说下为什么要写这个函数的前言,这个是我在微信二次开发的一个token验证文档也就是示例文档看到的一个函数,当时非常不理解,于是查了百度,但是很多结果都很笼统,结果也 ...

  6. http和web缓存

    1.http的缓存类型   缓 存对于一个网站来说非常重要,可以提高网站性能,减少冗余的数据传输,增加服务器负担,web存储则给浏览器提供了更加强大的保存文件的接口.关于web下的http缓存类型比较 ...

  7. oracle 笔记---(二)

    查询ASM实例包含的内存组件 SQL> select component,current_size from v$memory_dynamic_components 2 ; COMPONENT ...

  8. MVC参数自动装配

    在拿到一个类型的所有属性以及字段的描述信息后,就可以通过循环的方式,根据这些数据成员的名字去QueryString,Form,Session,Cookie读取所需的数据了. 就是遍历参数,然后用反射遍 ...

  9. (转) shell实例手册

    shell实例手册 1文件{ touch file              # 创建空白文件rm -rf 目录名           # 不提示删除非空目录(-r:递归删除 -f强制)dos2uni ...

  10. vue之mapMutaions的使用 && vuex中 action 用法示例 && api.js的使用

    vue之mapMutations的使用 我们通过Mutation来改变store中的state,方法往往是在子组件中使用 this.$store.commit(); 来实现,但是这样的缺点是不容易查看 ...