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方法 @Override
public 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();//删除该文件

Java IO之File的更多相关文章

  1. [Storm] java.io.FileNotFoundException: File '../stormconf.ser' does not exist

    This bug will kill supervisors Affects Version/s: 0.9.2-incubating, 0.9.3, 0.9.4 Fix Version/s: 0.10 ...

  2. 运行基准测试hadoop集群中的问题:org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /benchmarks/TestDFSIO/io_data/test_

    在master(即:host2)中执行 hadoop jar hadoop-test-1.1.2.jar DFSCIOTest -write -nrFiles 12 -fileSize 10240 - ...

  3. Spark启动报错|java.io.FileNotFoundException: File does not exist: hdfs://hadoop101:9000/directory

    at org.apache.spark.deploy.history.FsHistoryProvider.<init>(FsHistoryProvider.scala:) at org.a ...

  4. com.jcraft.jsch.JSchException: java.io.FileNotFoundException: file:\D:\development\ideaProjects\salary-card\target\salary-card-0.0.1-SNAPSHOT.jar!\BOOT-INF\classes!\keystore\login_id_rsa 资源未找到

    com.jcraft.jsch.JSchException: java.io.FileNotFoundException: file:\D:\development\ideaProjects\sala ...

  5. Java—IO流 File类的常用API

    File类 1.只用于表示文件(目录)的信息(名称.大小等),不能用于文件内容的访问. package cn.test; import java.io.File; import java.io.IOE ...

  6. 关于spark入门报错 java.io.FileNotFoundException: File file:/home/dummy/spark_log/file1.txt does not exist

    不想看废话的可以直接拉到最底看总结 废话开始: master: master主机存在文件,却报 执行spark-shell语句:  ./spark-shell  --master spark://ma ...

  7. java io包File类

    1.java io包File类, Java.io.File(File用于管理文件或目录: 所属套件:java.io)1)File对象,你只需在代码层次创建File对象,而不必关心计算机上真正是否存在对 ...

  8. Sqoop 抽数报错: java.io.FileNotFoundException: File does not exist

    Sqoop 抽数报错: java.io.FileNotFoundException: File does not exist 一.错误详情 2019-10-17 20:04:49,080 INFO [ ...

  9. Diagnostics: File file:/private/tmp/spark-d4ebd819-e623-47c3-b008-2a4df8019758/__spark_libs__6824092999244734377.zip does not exist java.io.FileNotFoundException: File file:/private/tmp/spark-d4ebd819

    spark伪分布式模式 on-yarn出现一下错误 Diagnostics: File file:/private/tmp/spark-d4ebd819-e623-47c3-b008-2a4df801 ...

  10. JAVA:IO流——File类

    1.掌握File 类的作用 2.可以使用File 类中的方法对文件进行操作 所有的 io 操作都保存在 java.io 包中. 构造方法:public File (String pathname) 直 ...

随机推荐

  1. 九度 Online Judge 之《剑指 Offer》一书相关题目解答

    前段时间准备华为机试,正好之前看了一遍<剑指 Offer>,就在九度 Online Judge 上刷了书中的题目,使用的语言为 C++:只有3题没做,其他的都做了. 正如 Linus To ...

  2. IOS播放音乐和音效

    1.播放音效 1.1 首先获取到音效文件路径 NSString *path = [[NSBundle mainBundle] pathForResource:soundFileName ofType: ...

  3. 【LeetCode】88 - Merge Sorted Array

    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:Yo ...

  4. [WebService]之JWS_1

    创建JWS项目步骤: 1:创建接口 2:创建实现类 3:开启服务 1:编写接口 @WebService public interface IMyService { public int add(int ...

  5. 手势冲突UIPanGestureRecognizer 和UIPinchGestureRecognizer

    当同时使用pan和pin手势时假如冲突,需要加入下面方法 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shou ...

  6. [札记]IL经典指令解析之方法调度

    call.callvirt和calli指令用于完成方法调用,有何区别呢? 1)call使用静态调度,也就是根据引用类型的静态类型来调度方法.call指令根据引用变量的类型来调用方法,因此通常用于调用非 ...

  7. DataGrid Column Group (合并表头)

    <thead> <tr> <th colspan=">swjg</th> <th colspan=">swbm</ ...

  8. 在WP8上搭建cocos2d-x开发环境

    在WP8上搭建cocos2d-x开发环境 转自:https://github.com/koowolf/cocos-docs/blob/master/manual/framework/native/in ...

  9. 制作炫酷banner js插件,revolution

    这是一款非常强大的内容切换插件,它基于jQuery,它充分响应,支持移动设备,支持手机触摸,键盘翻页:它内置幻灯.视频播放计时器,它拥有各种模式:自定义,自动响应,全屏:它有多种动画效果.3d效果.. ...

  10. CentOS(RedHat) 6.2 Samba share权限拒绝访问

    在实现<CentOS(RedHat) 6.2下Samba配置>的过程中,发现CentOS 6.2的Samba share总是没有权限写文件,已经试过在Windows XP/Windows  ...