2019独角兽企业重金招聘Python工程师标准>>>

FILE类是用来实现获取文件、文件夹的类库工具,File并非像类名所表示的那样只是用来表示文件,它还可以用来表示文件夹。所以可以用File来获取一个目录下的所有文件,甚至是文件夹中的文件。
一个简单的获取当前文件目录下所有文件及文件夹的方法

public static void dir() {File dir = new File(".");// "."表示当前文件所在目录String[] files = dir.list();// 获取该路径下所有的文件数组for (String s : files)System.out.println(s);}

也可以通过这种方式,递归实现获取指定目录及所有子孙目录下所有文件树。

public static void allFiles(String path, int layer) {File file = new File(path);// 根据路径创建目录String[] files = file.list();File temp;for (String s : files) {String p = path + "/" + s;// 构造新路径for (int i = 0; i < layer; i++)System.out.print("\t");System.out.println("|-" + s);temp = new File(p);if (temp.isDirectory())// 如果该File是目录(即文件夹),则递归显示该目录下的文件allFiles(p, layer + 1);}}

其中layer参数用来表示目录的深度,方便根据文件树的深度进行缩进输出。

如果需要对文件目录进行删选,则给list()方法提供一个实现FilenameFilter接口的对象,并且重写其中的accept()方法,用正则表达式对文件名进行匹配。

public static void fileFilter() {File file = new File(".");String files;for (String s : file.list(new FilenameFilter() {// 通过匿名内部类实现一个FilenameFilter一个实例,并实现其中的accept方法@Overridepublic boolean accept(File dir, String name) {return Pattern.compile(".*\\.java").matcher(name).matches();// 通过正则表达式,对文件名进行匹配,匹配以".java"结尾的文件}})) {System.out.println(s);}}

File类中有如下常用方法:

public String getName();    //获取文件名
public String getParent();//获取其父路径
public String getAbsolutePath();//获取其在计算机中的绝对路径
public boolean canRead();//文件是否可读
public boolean canWrite();//文件是否可以写
public boolean canExecute();//文件是否可执行
public boolean exists();//文件是否存在
public boolean isDirectory();//是否是文件夹(目录)
public boolean isFile();//是否是文件
public boolean isHidden();//是否隐藏
public long length();//获得文件长度
public boolean createNewFile();//创建新文件
public boolean delete();//删除该文件

转载于:https://my.oschina.net/u/3099393/blog/798356

Java IO之File相关推荐

  1. 安装好hadoop集群后,报错如下n org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /data/hadoop-roo

    master错误: n org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /data/hadoop-root-namen ...

  2. Glide java.io.IOException(File unsuitable for memory mapping)

    异常信息 03-06 14:43:26.656 W/Glide ( 852): class com.bumptech.glide.load.engine.GlideException: Failed ...

  3. Java IO 、 File 、 文件复制

    目录 1.1转换流 1.1.1概述 1.1.2 InputStreamReader 1.2打印流 1.2.1概述 1.2.2 使用 1.3 对象流 / 序列化 1.3.1 概述 1.3.2序列化 1. ...

  4. Java IO:File类方法简介

    Java IO:File类方法 File类 能新建.删除.重命名文件和目录,但不能访问文件内容本身. 访问文件名 getName() getPath() getAbsoluteFile() getAb ...

  5. Hadoop2.2.0 中错误总结之(org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /test._COPYING)

    错误: [root@xiajie01 sbin]# hadoop fs -put /root/20131210110122880.doc  hdfs://192.168.30.169:9000/tes ...

  6. Java IO流-File类

    2017-10-24 23:50:22 File类 File类:文件和目录路径名的抽象表示形式.该文件或者目录不一定真实存在. * 构造方法 File类有四种构造方法,主要采用的构造方法师第二种,也就 ...

  7. java IO之 File类+字节流 (输入输出 缓冲流 异常处理)

    1. File类 File 路径问题: 上下级文件夹之间使用分隔符分开: 在Windows中分隔符为'\' ,在Unix/Linux中分隔符为'/' 跨平台分隔符: 专业的做法是使用File.sepa ...

  8. IO-1(Java IO、File类)

    1. 简介 之前的程序,数据都存储在内存中,一旦运行结束,数据消失. 数据持久化存储:将内存中的数据存储到内存以外的持久化设备中(硬盘,光盘.U盘等). OS中,数据都保存文件存放在相应的文件夹. 集 ...

  9. Java IO之File类详解

    定义: File类在java.io包下,是java对文件和目录的抽象,用于操作文件或目录,比如创建.删除.执行等等. File类的实例一旦创建就不可改变的,也就是说File类的实例是对a文件的抽象,一 ...

  10. Day22 Java IO流 File、IO流的字节输出流

    File 概述: 想要实现IO流操作,就必须要知道硬盘上文件的表现形式 Java提供了一个类让我们操作硬盘上的文件:File.File也就是文件的表现形式 File:文件和目录(文件夹)路径名的抽象表 ...

最新文章

  1. 基于SSL的mysql(MariaDB)主从复制
  2. AI产业落地风向标,2019全球智博会亮点回顾
  3. python100行代码-100行Python代码自动抢火车票!
  4. IDEA需要修改的配置
  5. 业务实体 数据实体
  6. oracle强制切换redolog组
  7. 比较两张大小相同的照片的差异,返回数值
  8. 设置网页文字禁止复制
  9. hdu4751Divide Groups(dfs枚举完全图集合或者bfs染色)
  10. 小记linux如何挂载window下的共享文件
  11. 人人商城商品分享码添加用户的头像和昵称
  12. 华为WATCH 3手表怎么收能量,速领手表一键收能量
  13. c语言scanf和printf区别,printf和scanf的区别是什么
  14. 人大金仓V8R6 for RHEL7.6
  15. Java多线程运用——赛马小游戏
  16. 试分别简述udp和tcp的特点_读朱红群《余姚音系简述》
  17. C#之Sokect通讯实例
  18. 42所一流大学研究生奖助学金汇总~
  19. ERP需求和销售管理 华夏
  20. 谈谈对数据中台,数据治理,数据管理,数据资产管理相关内涵认知

热门文章

  1. php原生的异步请求,原生JavaScript实现Ajax异步请求
  2. 小括号教学设计导入_【干货】教学设计万能模板已到达,各科都能用!
  3. python安装idle_怎么在windows下的Python开发工具IDLE里安装其他模块
  4. golang微服务框架对比_最强开源微服务框架,全网独家整理
  5. envi窗口滤波_高光谱ENVI图像处理之滤波
  6. 华为多臂路由_[分享]华为 AR路由 策略路由 多WAN环境下指定出口 | 霸王硬上弓's Blog...
  7. c++ 输出二进制_Q音直播编译优化与二进制集成方案
  8. 账号管理工具_新媒体账号管理工具,自媒体运营神器,管理多个账号很简单
  9. Windows10 Kafka Docker 集群搭建
  10. java rtree源码_rtree R树用java实现的源代码,欢迎广大用户学习交流 Applet 272万源代码下载- www.pudn.com...