JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤


我们可以继续了,今天说下File

一.File概述

文件的操作是非常重要的,我们先来看下他的基本概念

  • 用于将文件或者文件夹封装成对象
  • 方便对文件和文件夹的操作
  • File对象可以作为参数传递给流的构造函数

我们写个小例子先

package com.lgl.hellojava;import java.io.File;public class HelloJJAVA {public static void main(String[] args) {// 创建File对象,不存在也没事File file = new File("a.txt");//目录 文件名File file2 = new File("F:\\isblog\\Demo","a.txt");//封装什么就打印什么System.out.println(file);}
}

其实就是一个类的使用

二.创建删除

是文件肯定有操作方法

  • 1.创建
  • 2.删除
  • 3.判断
  • 4.获取信息

1.创建

忽然如此,我们用实际的例子来说明岂不妙哉?

package com.lgl.hellojava;import java.io.File;
import java.io.IOException;public class HelloJJAVA {public static void main(String[] args) {// 创建File对象File file = new File("a.txt");try {//创建file.createNewFile();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

在指定的位置创建文件,如果文件已经存在,就不创建,并且返回false,和输出流不一样,输出流对象已建立文件,文件就已经存在,会覆盖

2.删除

删除我就不说了,直接这样

file.delete();

他还有一个方法比较好玩

file.deleteOnExit();

在程序退出之后删除文件

三.判断文件存在

判断文件是否存在

package com.lgl.hellojava;import java.io.File;
import java.io.IOException;public class HelloJJAVA {public static void main(String[] args) {// 创建File对象File file = new File("a.txt");// 判断是否存在,不存在则创建if (!file.exists()) {try {file.createNewFile();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
}

这样我们就可以去判断文件是否存在且不存在就去创建文件了。

四.创建文件夹

我们继续来看怎么去创建文件夹,其实也很简单

package com.lgl.hellojava;import java.io.File;public class HelloJJAVA {public static void main(String[] args) {// 创建File对象File file = new File("liuguilin");file.mkdir();}
}

OK,这样的话,就创建了,这里注意mkdir只能创建一级目录,而mkdirs可以创建多级文件夹目录

五.判断是否为文件/文件夹

有时候还是需要的

package com.lgl.hellojava;import java.io.File;public class HelloJJAVA {public static void main(String[] args) {File file = new File("liuguilin");//是否为文件System.out.println(file.isFile());//是否为文件夹System.out.println(file.isDirectory());}
}

他返回的是boolean值来确定是否存在,但是这里也要记住一电,就是一定要确定这个文件是否存在,所以我们的流程可以这样写

package com.lgl.hellojava;import java.io.File;
import java.io.IOException;public class HelloJJAVA {public static void main(String[] args) {File file = new File("liuguilin");// 判断文件是否存在if (file.exists()) {// 再去判断文件还是文件夹if (file.isFile()) {System.out.println("文件");} else if (file.isDirectory()) {System.out.println("文件夹");}} else {try {file.createNewFile();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
}

这样逻辑是比较清晰的

六.获取信息

获取的话,我们是怎么去获取信息的呢?毫无疑问,是get,比如getNmae之类的,我们用代码里的注释来说明是比较好的

package com.lgl.hellojava;import java.io.File;public class HelloJJAVA {public static void main(String[] args) {File file = new File("liuguilin.txt");File file2 = new File("haha.txt");// 项目路径下+文件名System.out.println("路径:" + file.getPath());// 全路径System.out.println("绝对路径:" + file.getAbsolutePath());// 最后一次修改时间System.out.println("时间:" + file.lastModified());// 绝对路径中的文件父目录,如果是相对路径,返回的为空System.out.println("父目录:" + file.getParent());// 把内容拷贝到另一个文本中并且删除自身System.out.println(file.renameTo(file2));}
}

运行的结果

七.文件列表

列出可用的系统目录,我们看代码

package com.lgl.hellojava;import java.io.File;public class HelloJJAVA {public static void main(String[] args) {File[] listRoots = File.listRoots();for (File f : listRoots) {// 打印磁盘目录System.out.println(f);}}
}

这样我们就可以得到有效盘符了

我们可以进行改进,我们打印C盘下的所有文件

package com.lgl.hellojava;import java.io.File;public class HelloJJAVA {public static void main(String[] args) {//必须封装了一个目录,该目录还必须存在File f = new File("c:\\");String[] list = f.list();for (String fi : list) {System.out.println(fi);}}
}

得到的肯定就是所有文件的列表咯

八.文件过滤

我们做文件夹的时候经常会用到的一个小知识点,就是过滤文件

package com.lgl.hellojava;import java.io.File;
import java.io.FilenameFilter;public class HelloJJAVA {public static void main(String[] args) {File f = new File("c:\\");String[] list = f.list(new FilenameFilter() {// 过滤@Overridepublic boolean accept(File dir, String name) {// 只返回txt后缀的文件return name.endsWith(".txt");}});for (String fi : list) {// 过滤System.out.println(fi);}}}

需要监听,然后过滤,当然,他还有一些其他的子类listFiles就不讲了,详细的翻阅下API

我们本篇博文就先到这里

有兴趣的可以加群:555974449

JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤...相关推荐

  1. java面试题二十八 从未用过的 native

    一 考题 二 native延伸 native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中.Java语言本身不能对操作系统底层进行访 ...

  2. Java设计模式之二十八(里氏代换原则)

    一.什么是里氏代换原则 里氏代换原则(Liskov Substitution Principle):一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类和子类对象的区别.也就 ...

  3. Java小白学习二十八——冒泡排序

    冒泡排序 比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置 每一次比较,都会产生一个最大,或者最小的数字 下一轮则可以少一次排序 依次循环,直到结束 package com. ...

  4. Java多线程学习二十八:原子类和 volatile 有什么异同?

    原子类和 volatile 有什么异同 案例说明 volatile 和原子类的异同 我们首先看一个案例.如图所示,我们有两个线程. 在图中左上角可以看出,有一个公共的 boolean flag 标记位 ...

  5. Citrix 服务器虚拟化之二十八 XenApp6.5发布文档内容

    Citrix 服务器虚拟化之二十八  XenApp 6.5发布文档内容 XenApp可发布以下类型的资源向用户提供信息访问,这些资源可在服务器或桌面上虚拟化: 1)  服务器桌面:发布场中服务器的整个 ...

  6. JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤

    JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常 ...

  7. 打怪升级之小白的大数据之旅(二十五)<Java面向对象进阶之IO流三 其他常见流>

    打怪升级之小白的大数据之旅(二十五) Java面向对象进阶之IO流三 其他常见流 上次回顾 上一章,我们学习了常用的字节流与字符流,本章,我会将其他的一些常见的流进行分享,IO流很多,我介绍不完,就挑 ...

  8. 【零基础学Java】—笔记本USB接口案例(二十八)

    [零基础学Java]-笔记本USB接口案例(二十八) 一.笔记本电脑 笔记本电脑(laptop)通常具备使用USB设备的功能,在生产时,笔记本都预留了可以插入USB设备的USB接口,但具体什么是USB ...

  9. kafka maven 依赖_SpringBoot入门建站全系列(二十八)整合Kafka做日志监控

    SpringBoot入门建站全系列(二十八)整合Kafka做日志监控 一.概述 Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端 ...

最新文章

  1. cloning java_深入浅出Java中的clone克隆方法,写得太棒了!
  2. Zeal编程查询,离线文档浏览器
  3. python软件安装步骤-Linux中Python 环境软件包安装步骤
  4. Hadoop MapReduce V2 Yarn——WordCount
  5. 用递归法求1²+2²+...+n²的值
  6. javascript简介和基本语法
  7. 修改XP/Win7开机动画
  8. 软件需求分析模板2020-11-04
  9. 绿云酒店管理系统 服务器要求,绿云宾馆管理软件系统基础-20210728170313.docx-原创力文档...
  10. X5之position_estimator_inav_main.c
  11. 金融信息化及交易管理系统(股票交易系统APP)
  12. 记一款价廉物美的小型DAC+耳放----Dr.DAC
  13. excel不能复制粘贴怎么回事
  14. Mac上用spotlight搜索输入几个字母后闪退
  15. 投融资项目入门和总结
  16. 使用Jmockit完成static方法的mock
  17. 教育行业在用的云管平台是什么牌子?
  18. Mask2Former源码解析
  19. 《乡村爱情11》将播 除了刘能赵四,竟还有狄龙
  20. c java gif 夺宝奇兵_java游戏:将GIF转 字符GIF

热门文章

  1. [问题2014S07] 解答
  2. mac上远程连接windows
  3. 整合ext和dwr 的小例子
  4. MS CRM 2011的自定义与开发(2)——预备知识
  5. 如何从SQL Server查找指定的临时表
  6. 从业余挖洞到微软漏洞研究员,我的遗憾、惊喜和建议
  7. 2020 Pwn2Own东京大赛落幕,Master of Pwn 诞生
  8. 看我如何绕过Cloudflare 的 SQL 注入过滤
  9. vue-router的beforeEach的使用?
  10. Mirantis决定采用Kubernetes作为 Openstack的生命周期管理工具