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. CH340在STM32实现一键下载电路

    在做基于STM32的多功能MP3播放器的课题时,在程序下载这部分时借鉴了正点原子开发板上的一键下载电路,采用CH340G这款芯片设计. 在画PCB初期原理图部分,对采用CH340G设计的一键下载电路不 ...

  2. (转)android中利用 ViewPage 实现滑动屏

    最近实现了这样的一个效果:滑动界面出现拖拽效果,可翻动3屏,也可点击按钮翻动页面. 主要利用android.support.v4.view.ViewPager控件来实现. 第一个界面: 滑动屏幕: 换 ...

  3. 安装VMware-tools的问题

    今天晚上解决了之前在跟着 Linux学习之CentOS(六)--CentOS下VMware-Tools安装 解压部分,cp 压缩文件时,没有通过命令,直接鼠标操作复制到/home/ranjiewen下 ...

  4. Python:列表,元组

    一.列表 和字符串一样,列表也是序列类型,因此可以通过下标或者切片操作访问一个或者多个元素.但是,不一样的,列表是容器类型,是可以进行修改.更新的,即当我们进行修改列表元素,加入元素等操作的时候,是对 ...

  5. Numpy矩阵取列向量

    >>> A=matrix("1 2;3 4") >>> A matrix([[1, 2], [3, 4]]) >>> A[:, ...

  6. iOS打开手机QQ与指定用户聊天界面

    开发中遇到一个联系客服qq的需求,找到这么一个实现方法,先记录下来.大概的原理就是,iOS启动第三方应用是采用schema模式的,这有点像url,打开不同的界面使用不同的地址.但这个url怎么得来的还 ...

  7. hdu 4815 Little Tiger vs. Deep Monkey(01背包)

    http://acm.hdu.edu.cn/showproblem.php?pid=4815 Description A crowd of little animals is visiting a m ...

  8. Ubuntu之系统交换分区Swap增加与优化

    http://os.51cto.com/art/201212/372860.htm   http://blog.csdn.net/xingyu15/article/details/5570225   ...

  9. UVaLive 6698 Sightseeing Bus Drivers (水题,贪心)

    题意:n个工人,有n件工作a,n件工作b,每个工人干一件a和一件b,a[i] ,b[i]代表工作时间,如果a[i]+b[j]>t,则老板要额外付钱a[i]+b[j]-t;现在要求老板付钱最少: ...

  10. Elasticsearch template configuration

    Index templates allow defining templates thatwill automatically be applied to new indices created. T ...