File类概述和构造方法
File:文件或目录路径名的抽象表示形式
构造方法:
File(String pathname),根据路径得到File对象
File(String parent,String child),根据一个目录和子文件/目录得到File对象
File(File parent,String child),根据父File对象和子文件/目录得到File对象

public class FileDemo {  public static void main(String[] args) {      // File(String pathname):根据一个路径得到File对象        // 把e:\\demo\\a.txt封装成一个File对象        File file = new File("E:\\demo\\a.txt");

     // File(String parent, String child):根据一个目录和一个子文件/目录得到File对象      File file2 = new File("E:\\demo", "a.txt");

        // File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象       File file3 = new File("e:\\demo");     File file4 = new File(file3, "a.txt");

       // 以上三种方式其实效果一样   }}

A:创建功能
public boolean createNewFile():创建文件,返回true,如果存在这个文件,就不创建,返回false.
public boolean mkdir() : 创建文件夹,返回true,如果存在这个文件夹,就不创建,返回false.
public boolean mkdirs() : 创建文件夹,如果父文件夹不存在,则会帮你创建出来

public class FileDemo {  public static void main(String[] args) throws IOException {       // 需求:我要在e盘目录下创建一个文件夹demo      File file = new File("e:\\demo");      System.out.println("mkdir:" + file.mkdir());

     // 需求:我要在e盘目录demo下创建一个文件a.txt     File file2 = new File("e:\\demo\\a.txt");      System.out.println("createNewFile:" + file2.createNewFile());

        // 需求:我要在e盘目录test下创建一个文件b.txt      // Exception in thread "main" java.io.IOException: 系统找不到指定的路径。      // 注意:要想在某个目录下创建内容,该目录首先必须存在。       // File file3 = new File("e:\\test\\b.txt");       // System.out.println("createNewFile:" + file3.createNewFile());

     // 需求:我要在e盘目录test下创建aaa目录     // File file4 = new File("e:\\test\\aaa");     // System.out.println("mkdir:" + file4.mkdir());

     // File file5 = new File("e:\\test");      // File file6 = new File("e:\\test\\aaa");     // System.out.println("mkdir:" + file5.mkdir());       // System.out.println("mkdir:" + file6.mkdir());

     // 其实我们有更简单的方法        File file7 = new File("e:\\aaa\\bbb\\ccc\\ddd");       System.out.println("mkdirs:" + file7.mkdirs());

      // 看下面的这个东西:       File file8 = new File("e:\\liuyi\\a.txt");     System.out.println("mkdirs:" + file8.mkdirs());    }}

B:删除功能
public boolean delete() : 删除文件或文件夹

注意:
A:如果你创建的文件或文件夹没写盘符,默认在项目路径下
B:Java中的删除不走回收站。
C:要删除一个文件夹,文件夹内不能包含文件或文件夹。

public class FileDemo {  public static void main(String[] args) throws IOException {       // 创建文件       // File file = new File("e:\\a.txt");      // System.out.println("createNewFile:" + file.createNewFile());

      // 我不小心写成这个样子了        File file = new File("a.txt");     System.out.println("createNewFile:" + file.createNewFile());

     // 继续玩几个      File file2 = new File("aaa\\bbb\\ccc");        System.out.println("mkdirs:" + file2.mkdirs());

      // 删除功能:我要删除a.txt这个文件      File file3 = new File("a.txt");        System.out.println("delete:" + file3.delete());

      // 删除功能:我要删除ccc这个文件夹       File file4 = new File("aaa\\bbb\\ccc");        System.out.println("delete:" + file4.delete());

      // 删除功能:我要删除aaa文件夹     // File file5 = new File("aaa");       // System.out.println("delete:" + file5.delete());

       File file6 = new File("aaa\\bbb");     File file7 = new File("aaa");      System.out.println("delete:" + file6.delete());        System.out.println("delete:" + file7.delete());    }}

C:重命名功能
public boolean renameTo(File dest)
如果路径相同,就是改名。
如果路径不相同,就是改名并剪切。

路径以盘符开始: 绝对路径 c:\\demo
路径不以盘符开始:相对路径。

public class FileDemo {  public static void main(String[] args) {      // 创建一个文件对象       // File file = new File("林青霞.jpg");        // // 需求:我要修改这个文件的名称为"东方不败.jpg"      // File newFile = new File("东方不败.jpg");        // System.out.println("renameTo:" + file.renameTo(newFile));

     File file2 = new File("东方不败.jpg");     File newFile2 = new File("e:\\林青霞.jpg");       System.out.println("renameTo:" + file2.renameTo(newFile2));    }}

D:判断功能
public boolean isDirectory() :判断是否是目录
public boolean isFie() :判断是否是文件
public boolean exists() :判断是否存在
public boolean canRead() :判断是否可读
public boolean canWrite() :判断是否可写
public boolean isHidden() :判断是否隐藏

public class FileDemo {  public static void main(String[] args) {      // 创建文件对象     File file = new File("a.txt");

       System.out.println("isDirectory:" + file.isDirectory());// false       System.out.println("isFile:" + file.isFile());// true      System.out.println("exists:" + file.exists());// true      System.out.println("canRead:" + file.canRead());// true        System.out.println("canWrite:" + file.canWrite());// true      System.out.println("isHidden:" + file.isHidden());// false }}

E:获取功能
public String getAbsolutePath(): 获取绝对路径
public String getPath() : 获取相对路径
public String getName() : 获取名称
public long length() : 获取长度。字节数
public long lastModified() :获取最后一次修改的时间,毫秒值

public class FileDemo {  public static void main(String[] args) {      // 创建文件对象     File file = new File("demo\\test.txt");

      System.out.println("getAbsolutePath:" + file.getAbsolutePath());       System.out.println("getPath:" + file.getPath());       System.out.println("getName:" + file.getName());       System.out.println("length:" + file.length());     System.out.println("lastModified:" + file.lastModified());

       // 1416471971031      Date d = new Date(1416471971031L);       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        String s = sdf.format(d);        System.out.println(s);    }}

F:高级获取功能
public String[] list(): 获取指定目录下所有文件和文件夹的名称数组
public File[] listFiles(): 获取指定目录下所有文件和文件夹的File数组

public class FileDemo {  public static void main(String[] args) {      // 指定一个目录     File file = new File("e:\\");

        // public String[] list():获取指定目录下的所有文件或者文件夹的名称数组      String[] strArray = file.list();     for (String s : strArray) {           System.out.println(s);        }     System.out.println("------------");

       // public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组     File[] fileArray = file.listFiles();     for (File f : fileArray) {            System.out.println(f.getName());      } }}

案例:输出e:盘目录下所有以.jpg结尾的文件

/* * 判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称 *  * 分析: *        A:封装e判断目录 *       B:获取该目录下所有文件或者文件夹的File数组 *        C:遍历该File数组,得到每一个File对象,然后判断 *      D:是否是文件 *             是:继续判断是否以.jpg结尾 *              是:就输出该文件名称 *               否:不搭理它 *           否:不搭理它 */public class FileDemo {   public static void main(String[] args) {      // 封装e判断目录        File file = new File("e:\\");

        // 获取该目录下所有文件或者文件夹的File数组     File[] fileArray = file.listFiles();

       // 遍历该File数组,得到每一个File对象,然后判断       for (File f : fileArray) {            // 是否是文件          if (f.isFile()) {             // 继续判断是否以.jpg结尾              if (f.getName().endsWith(".jpg")) {                 // 就输出该文件名称                   System.out.println(f.getName());              }         }     } }}

G:过滤器功能

案例代码二: 使用过滤器功能

/* * 判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称 * A:先获取所有的,然后遍历的时候,依次判断,如果满足条件就输出。 * B:获取的时候就已经是满足条件的了,然后输出即可。 *  * 要想实现这个效果,就必须学习一个接口:文件名称过滤器 * public String[] list(FilenameFilter filter) * public File[] listFiles(FilenameFilter filter) */public class FileDemo2 {   public static void main(String[] args) {      // 封装e判断目录        File file = new File("e:\\");

        // 获取该目录下所有文件或者文件夹的String数组       // public String[] list(FilenameFilter filter)        String[] strArray = file.list(new FilenameFilter() {         @Override            public boolean accept(File dir, String name) {                // return false;              // return true;               // 通过这个测试,我们就知道了,到底把这个文件或者文件夹的名称加不加到数组中,取决于这里的返回值是true还是false                // 所以,这个的true或者false应该是我们通过某种判断得到的             // System.out.println(dir + "---" + name);                // File file = new File(dir, name);              // // System.out.println(file);               // boolean flag = file.isFile();             // boolean flag2 = name.endsWith(".jpg");              // return flag && flag2;              return new File(dir, name).isFile() && name.endsWith(".jpg");           }     });

     // 遍历     for (String s : strArray) {           System.out.println(s);        } }}

总结:



1:异常(理解)   (1)程序出现的不正常的情况。   (2)异常的体系      Throwable         |--Error    严重问题,我们不处理。            |--Exception              |--RuntimeException 运行期异常,我们需要修正代码             |--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过  (3)异常的处理:      A:JVM的默认处理            把异常的名称,原因,位置等信息输出在控制台,但是呢程序不能继续执行了。        B:自己处理            a:try...catch...finally               自己编写处理代码,后面的程序可以继续执行          b:throws              把自己处理不了的,在方法上声明,告诉调用者,这里有问题  (4)面试题        A:编译期异常和运行期异常的区别?         编译期异常 必须要处理的,否则编译不通过           运行期异常 可以不处理,也可以处理      B:throw和throws是的区别            throw:                在方法体中,后面跟的是异常对象名,并且只能是一个              throw抛出的是一个异常对象,说明这里肯定有一个异常产生了         throws:               在方法声明上,后面跟的是异常的类名,可以是多个               throws是声明方法有异常,是一种可能性,这个异常并不一定会产生   (5)finally关键字及其面试题        A:finally用于释放资源,它的代码永远会执行。特殊情况:在执行到finally之前jvm退出了      B:面试题         a:final,finally,finalize的区别?          b:如果在catch里面有return,请问finally还执行吗?如果执行,在return前还是后                会,前。

             实际上在中间。这个上课我们讲过       C:异常处理的变形         try...catch...finally         try...catch...            try...catch...catch...            try...catch...catch...fianlly         try...finally (6)自定义异常      继承自Exception或者RuntimeException,只需要提供无参构造和一个带参构造即可 (7)异常的注意实现        A:父的方法有异常抛出,子的重写方法在抛出异常的时候必须要小于等于父的异常         B:父的方法没有异常抛出,子的重写方法不能有异常抛出        C:父的方法抛出多个异常,子的重写方法必须比父少或者小

2:File(掌握) (1)IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件   (2)构造方法       A:File file = new File("e:\\demo\\a.txt");     B:File file = new File("e:\\demo","a.txt");      C:File file = new File("e:\\demo");          File file2 = new File(file,"a.txt"); (3)File类的功能(自己补齐)     A:创建功能        B:删除功能        C:重命名功能       D:判断功能        E:获取功能        F:高级获取功能      G:过滤器功能   (4)案例:     A:输出指定目录下指定后缀名的文件名称           a:先获取所有的,在遍历的时候判断,再输出           b:先判断,再获取,最后直接遍历输出即可        B:批量修改文件名称

传智播客风清扬视频-------IO简述之File讲解相关推荐

  1. 传智播客风清扬视频-------网络编程简介

    计算机网络模型 OSI(Open System Interconnection开放系统互连)参考模型 TCP/IP参考模型 OSI 应用层--表示层--会话层--传输层--网络层--数据链路层--物理 ...

  2. 传智播客风清扬视频-------线程简介

    想了解线程,必须先了解进程,因为线程是依赖进程存在的. 什么是进程? 进程就是正在运行的程序:是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内存空间和系统资源. 多进程有什么意义? 单进程 ...

  3. java工作流 传智播客_Activiti工作流视频教学(企业开发实战讲解)_传智播客

    Activiti工作流视频教学(企业开发实战讲解)_传智播客课程简介: Activiti工作流视频教学(企业开发实战讲解)_传智播客本教学共分4天进行讲解,本站提供第1天内容在线观看,全集教学请在本站 ...

  4. 传智播客C语言视频第二季(第一季基础上增加诸多C语言案例讲解,有效下载期为10.5-10.10关闭

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 卷 ba ...

  5. 传智播客C语言视频第二季(第一季基础上增加诸多C语言案例讲解,有效下载期为10.5-10.10关闭)

    卷 backup 的文件夹 PATH 列表 卷序列号为 00000025 D4A8:14B0 J:. │  1.txt │  c语言经典案例效果图示.doc │  ├─1传智播客_尹成_C语言从菜鸟到 ...

  6. 传智播客C语言视频第二季(第一季基础上增加诸多C语言案例讲解,有效下载期为10.5-10.10关闭)...

    卷 backup 的文件夹 PATH 列表 卷序列号为 00000025 D4A8:14B0 J:. │  1.txt │  c语言经典案例效果图示.doc │  ├─1传智播客_尹成_C语言从菜鸟到 ...

  7. 传智播客C语言视频第二季 第一季基础上增加诸多C语言案例讲解,有效下载期为10 5-10 10关闭

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 卷 backup ...

  8. 传智播客-php基础视频,传智播客PHP核心基础视频教程推荐(资源)

    PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写.PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言, ...

  9. 传智播客软件测试学习视频汇总:

    课程名称 分类 URL 提取码 软件测试入门到精通 视频 http://yun.itheima.com/course/490.html?aoe cnj1 资料 https://pan.baidu.co ...

  10. Java中设计模式——装饰类(传智播客毕老师视频讲解)

    装饰类设计模式: 当想要对已有的对象进行功能增强时,可以定义类,将已有的对象传入,基于已有的功能,并提供加强功能,则此自定义的该类称为装饰类. 装饰类通常会通过构造方法接收被装饰的对象,并基于被装饰的 ...

最新文章

  1. JBOSS 6和JBOSS 5搭建多实例方法
  2. 面对offer,如何选择
  3. 程序员,别了校园入了江湖
  4. 如何在PowerPoint中自动调整图片大小
  5. python多久可以精通_学Python需要多久能学会?精通Python需要多长时间?
  6. Java那些事之Log4j
  7. [bzoj5158][Tjoi2014]Alice and Bob
  8. Essential Booklist of .Net Framework
  9. MVC5 + EF6 + Bootstrap3 (11) 排序、搜索、分页
  10. ArcGIS中使用模型构建器快速计算图斑面积占比
  11. 开运魔法,晓腾叔叔的日常迷信。
  12. 微信小程序-自定义三级联动
  13. matlab条形图标注数据,matlab条形图怎样标注
  14. HTML期末大作业~仿小米商城网页设计模板(HTML+CSS+JavaScript)
  15. GPS 双频/单频接收机介绍
  16. AtCoder Beginner Contest 211
  17. anchors.fill和anchors.centerIn区别
  18. 动态测试与静态测试--手工测试和自动化测试
  19. 量变到质变所需要的努力
  20. activiti7没有自动生成表

热门文章

  1. Pigeon服务的注册与发现
  2. C++变量初始化形式及其默认初始值
  3. 计算机与资源管理器有何区别,在win7中双击打开计算机和右击打开资源管理器有什么区别...
  4. 修改Ceph 监视器地址
  5. php异步实现,避免长时间等待
  6. 计算机碎片整理的作用,磁盘碎片整理有什么用,详细教您磁盘碎片整理有什么作用...
  7. html5数学公式编辑器,Daum Equation Editor:数学公式编辑器
  8. 在Fcitx5中使用自定义双拼方案
  9. 2021-7-28-自动化运维Ansible
  10. ghost linux 黑屏,Ghost 与 Linux 的兼容性