第一章: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. 腾讯 angel 3.0:高效处理模型

    腾讯 angel 3.0:高效处理模型 紧跟华为宣布新的 AI 框架开源的消息,腾讯又带来了全新的全栈机器学习平台 angel3.0.新版本功能特性覆盖了机器学习的各个阶段,包括:特征工程.模型训练. ...

  2. 微调torchvision 0.3的目标检测模型

    微调torchvision 0.3的目标检测模型 本文将微调在 Penn-Fudan 数据库中对行人检测和分割的已预先训练的 Mask R-CNN 模型.它包含170个图像和345个行人实例,说明如何 ...

  3. 什么是阻塞、非阻塞、同步和异步以及IO模型

    首先先看如下几个问题,或者说我们经常会遇到的问题. 阻塞是否等于同步?非阻塞是否等于异步?同步一定是阻塞的么?异步一定是非阻塞的么?要把这四个概念讲明白,先从一顿简餐说起.假设你要做一顿便饭:烧土豆: ...

  4. 使用adb命令查看APP包名 和 包入口方法

    方法一: 1.查看 前台应用 包名,使用此命令注意:手机只启动要查看包名的app adb shell dumpsys activity | find "mFocusedActivity&qu ...

  5. IDEA骚技巧

    1. var 声明 2. null 判空 3. notnull 判非空 4. nn 判非空 5. for 遍历 6. fori 带索引的遍历 7. not 取反 8. if 条件判断 9. cast ...

  6. 实验2、Flask模板、表单、视图和重定向示例

    实验内容 1. 实验内容 表单功能与页面跳转功 能是Web应用程序的基础功能,学习并使用他们能够更好的完善应用程序的功能.Flask使用了名为Jinja2的模板引擎,该引擎根据用户的交互级别显示应用程 ...

  7. NX二次开发-通过数组创建矩阵

    函数:UF_CSYS_create_matrix() 函数说明:通过数组创建矩阵. 用法: #include <uf.h> #include <uf_csys.h> exter ...

  8. Pandas高级教程之:处理text数据

    目录 简介 创建text的DF String 的方法 columns的String操作 分割和替换String String的连接 使用 .str来index extract extractall c ...

  9. 【redis前传】自己手写一个LRU策略 | redis淘汰策略

    title: 自己手写一个LRU策略 date: 2021-06-18 12:00:30 tags: - [redis] - [lru] categories: - [redis] permalink ...

  10. Python常用数据结构(列表)

    Python中常用的数据结构有序列(如列表,元组,字符串),映射(如字典)以及集合(set),是主要的三类容器 内容 序列的基本概念 列表的概念和用法 元组的概念和用法 字典的概念和用法 各类型之间的 ...