第一章:File类

一、1个重点单词:

  file:文件;directory:文件夹/目录;path:路径(绝对路径:absolutePath)

二、4个静态成员变量:

  1.static String pathSeparator

  2.static char pathSeparatorChar

  3.static String separator

  4.static char separatorChar

  

  其中,pathSeparator与pathSeparatorChar 是与系统有关的路径分隔符,在Windows系统中,是分号“;”,在Linux系统中,是冒号“:”。

  separator与separatorChar 是与系统有关的默认名称分隔符,在Windows系统中,是反斜杠,在Linux系统中,在正斜杠。

public static final String pathSeparator = "" + pathSeparatorChar;
public static final String separator = "" + separatorChar;

  在Windows系统中

1 System.out.println(File.pathSeparator);     //;
2 System.out.println(File.pathSeparatorChar); //;
3 System.out.println(File.separator); //\
4 System.out.println(File.separatorChar); //\

三、绝对路径与相对路径

  1. 绝对路径:是一个完整的路径,以盘符开始
  2. 相对路径:是一个相对于当前项目的路径
  3. 路径不区分大小写
  4. 路径不要写死,容易出错。E:"+File.separator+"有道词典"+File.separator+"aaa.txt"
1 Windows: "E:\有道词典\aaa.txt"
2 Linux: "E:/有道词典/aaa.txt"
3 不要写死: "E:"+File.separator+"有道词典"+File.separator+"aaa.txt"

四、构造方法

  1. File(String pathname)
    1. 路径可以是以文件结尾,也可以是文件夹结尾
    2. 路径可以是相对路径,也可以是绝对路径
    3. 路径可以是存在的,也可以是不存在的
    4. 创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况
    5. 1 File f1 = new File("E:\\aaa\\bbb\\ccc.txt");
      2 System.out.println(f1);//E:\aaa\bbb\ccc.txt
      3 File f2 = new File("E:\\aaa\\bbb\\fff");
      4 System.out.println(f2);//E:\aaa\bbb\fff
      5 File f3 = new File("ggg\\123.txt");
      6 System.out.println(f3);//ggg\123.txt
  2. File(String parent,String chile)
    1. 参数:父路径,子路径
    2. 好处:父路径于子路径单独书写,使用灵活
  3. File(File parent,String child)
    1. 好处:父路径是File类型,可以先处理之后再使用
  4. File(URI uri)

五、获取的成员方法

  • public String getAbsolutePath();返回绝对路径名字字符串,无论构造方法中传递的路径是绝对路径还是相对路径
  • public String getPath():返回构造方法中指定的路径
    • File类重写Obejct类中的toString()方法就是调用的getPath()方法,源码如右: public String toString() {return getPath();}
  • public String getName():返回由此File表示的文件或目录的名称
  • public long length():返回文件长度。(构造方法指向的文件的大小,以字节为单位)。
    • 对文件夹使用该方法返回的是0,文件夹没有大小概念
    • 如果构造方法给出的路径不存在,返回0。

六、判断的成员方法

  • public boolean exists():文件或目录是否存在
  • public boolean isDirectory():是否目录
    • 若文件/目录不存在,则返回false
  • public boolean idFile():是否文件
    • 若文件/目录不存在,则返回false

七、创建或删除的成员方法

  • public boolean createNewFile():当且仅当具有该名称的文件尚不存在时,创建一个新的空文件

    • 创建文件的路径和名称在构造方法中给出
    • 返回值:
      • true:文件不存在,创建新的空文件,返回true
      • false:文件存在,不会创建文件,返回false
    • 注意:
      • 此方法只能创建文件,不能创建文件夹,若用此方法强行创建文件夹,实际创建的还是文件
      • 创建文件的路径必须存在,否则会抛出异常:throws IOException,所以调用了该方法,就必须处理异常,要么声明,要么捕获
  • public boolean mkdir():创建由此File表示的目录,只能创建单级目录
    • 创建文件夹的路径和名称在构造方法中给出
    • 返回值:
      • true:文件夹不存在,创建文件夹,返回true
      • false:
        • 文件夹存在,不会创建文件夹,返回false
        • 构造方法中给出的路径不存在,返回false
  • public boolean mkdirs():创建由此File表示的目录,包括任何必须存在但不存在的父目录
    • 创建文件夹的路径和名称在构造方法中给出
    • 返回值:
      • true:文件夹不存在,创建文件夹,返回true
      • false:
        • 文件夹存在,不会创建文件夹,返回false
        • 构造方法中给出的路径不存在,返回false
  • public boolean delete():删除文件或目录
    • 此方法可以删除由此File表示的文件或目录
    • 返回值:
      • true:文件或文件夹删除成功
      • false:
        • 文件夹中有内容,不会删除,返回false
        • 构造方法中给出的路径不存在,返回false
    • 注意:此方法直接在硬盘删除文件或文件夹,不走回收站,慎用。

八、遍历目录的成员方法

  • public String[] list():返回一个String数组,表示File目录中的所有子文件或目录(包括隐藏的文件或文件夹)
  • public File[] listFiles():返回也给File数组,表示目录中所有的子文件或目录(包括隐藏的)
  • 注意:
    • 如果构造方法中给出的目录不存在,会抛出空指针异常
    • 如果构造方法中给出的路径不是一个目录,也会抛出空指针异常

File类常用方法:

九、打印多级目录:

 1 //递归打印多级目录
2
3 public static void main(String[] args) {
4   File f=new File("E:\\aaa");
5   method(f);
6 }
7 private static void method(File f) {
8   System.out.println(f.getAbsoluteFile());
9   File[] files = f.listFiles();
10   for (File file : files) {
11     if(file.isDirectory()){
12       method(file);
13     }else{
14       System.out.println(f);
15     }
16   }
17 }

第三章、IO流概述

第四章、IO字节流

第五章、IO字符流

第六章、使用try...catch...finally...处理流中的异常

第七章、Properties集合

第八章、缓冲流

第九章、转换流

第十章、序列化流

第十一章、打印流

File类与常用IO流第一章File类的更多相关文章

  1. File类与常用IO流第二章过滤器

    在第一章中,有一个练习使用递归搜索文件 1 public static void main(String[] args) { 2 File f=new File("E:\\aaa" ...

  2. File类与常用IO流第九章——转换流

    第九章.转换流 字节编码和字符集 编码:按照某种规则将字符以二进制存储到计算机中. 解码:将存储在计算机中的二进制数按照某种规则解析显示出来. 字符编码:Character Encoding ,就是一 ...

  3. File类与常用IO流第四章——IO字节流

    一切文件在存储时,都是以二进制数字的形式保存的,都是一个一个字节.无论使用什么样的流对象,底层传输的始终是二进制数据. 字节输出流 OutputStream java.io.OutputStream ...

  4. File类与常用IO流第七章——Properties集合

    Properties概述 java.util.Properties extends Hashtable<k,v> implements Map<k,v> Properties类 ...

  5. File类与常用IO流第三章IO流概述

    一:以内存为基准,按照数据的流动方向,流向内存为输入(读取数据),流出内存为输出.IO流有四大顶级父类: IO流四大顶级父类   输入流 输出流 字节流 字节输入流 InputStream 字节输出流 ...

  6. File类与常用IO流第十章——序列化流

    第十章.序列化流 序列化流和反序列化流概述 序列化:用一个字节序列表示一个对象,该字节序列包含该对象的数据.对象的类型和对象中存储的属性等等信息.字节序列写出到文件后,相当于文件中持久保存了一个对象的 ...

  7. File类与常用IO流第八章——缓冲流

    第八章.缓冲流 缓冲流概述 缓冲流,也叫高效流,是对4个基本的FileXxx流的增强.按照数据类型分为4类:   输入缓冲流 输出缓冲流 字节缓冲流 BufferedInputStream Buffe ...

  8. File类与常用IO流第十一章——打印流

    第十一章.打印流 概述:java.io.PrintStream extends OutputStream,为其他输出流添加了功能,使题目能够方便的打印各种数据值表示形式. 特点: 只负责数据的输出,不 ...

  9. File类与常用IO流第五章——IO字符流

    字符流,只能操作文本文件,不能操作图片.视频等非文本文件 字符输入流 java.io.Reader 字符输入流中一些共性的成员方法 int read():读取单个字符并返回. int read(cha ...

随机推荐

  1. NVIDIA 认证系统

    NVIDIA 认证系统 AI 是这个时代最强大的技术,需要新一代经过调整和测试的计算机来推动其发展. 自 1 月 27 日开始,可从 NVIDIA 合作伙伴处获取用于数据中心的新型加速服务器,推动 A ...

  2. h265player开发

    h265player开发 https://github.com/goldvideo/h265player 简介 随着视频编码技术的发展,相比H.264, H.265同等画质体积仅为一半.带宽占用省一半 ...

  3. RTOS诊断和错误检查

    RTOS诊断和错误检查 RTOS diagnostics and error checking 查看RTOS显示系列 错误处理不太可能是任何用于嵌入式系统应用程序的操作系统的主要功能.这是资源限制的必 ...

  4. 深入理解java虚拟机笔记Chapter11

    运行期优化 即时编译 什么是即时编译? 当虚拟机发现某个方法或某段代码运行的特别频繁时,会把这段代码认为成热点代码: 在运行时,虚拟机会将这段代码编译成平台相关的机器码,并进行各种层次的优化. Hot ...

  5. 会点自动化就要25k? 现在年轻人这么浮躁吗

    面试中一问元素定位就对答如流.一问实际项目框架如何搭建就避重就轻.含糊其辞,这样的自动化实战能力也能拿25K?静待下文: 一.为什么现在自动化测试工资那么高呢? 结合现在的职场环境与企业用人需求,自动 ...

  6. 【模板】Linux下输出文件的对比

    命令格式: diff+[参数]+[文件1或目录1]+[文件2或目录2] 命令参数: 指定要显示多少行的文本.此参数必须与-c或-u参数一并使用. -a或--text diff预设只会逐行比较文本文件. ...

  7. leetcode1141 N*3矩阵。阿里笔试no.1

    你有一个 n x 3 的网格图 grid ,你需要用 红,黄,绿 三种颜色之一给每一个格子上色,且确保相邻格子颜色不同(也就是有相同水平边或者垂直边的格子颜色不同). 给你网格图的行数 n . 请你返 ...

  8. C#中使用ffmpeg合并视频

    首先将最新的ffmpeg.exe放到debug路径下,下载地址 http://www.ffmpeg.org/download.html 然后调用此方法 public void CombineMp4Wi ...

  9. 《手把手教你》系列基础篇之(三)-java+ selenium自动化测试- 启动三大浏览器(上)(详细教程)

    1.简介 前边宏哥已经将环境搭建好了,今天就在Java项目搭建环境中简单地实践一下: 启动三大浏览器.按市场份额来说,全球前三大浏览器是:IE.Firefox.Chrome.因此宏哥这里主要介绍一下如 ...

  10. sql循环说明

    while循环:主要是判断,不能使用表中的ID,临时表是ID自增的,通过自增ID可以查出表ID(语法简单,需要配合其他代码操作表ID)游标循环:可以使用表中的ID ,进行修改等操作(语法难一点,核心代 ...