博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA 7 中遍历文件目录
阅读量:6818 次
发布时间:2019-06-26

本文共 2489 字,大约阅读时间需要 8 分钟。

hot3.png

在 JAVA 7 中增加了一个方法对于遍历文件十分的方便,在这篇文章中我们将讲到怎样遍历文件以及处理访问前和访问后的事件。
FilVisitor 是nio包的一个新的接口,它为我们在遍历文件目录的时候提供了几个处理访问事件的方法。 示例:
package java7test;import java.io.IOException;import java.nio.file.FileVisitResult;import java.nio.file.Path;import java.nio.file.SimpleFileVisitor;import java.nio.file.attribute.BasicFileAttributes;public class TraverseFiles extends SimpleFileVisitor
{ @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { System.out.println("FILE VISETED:" + file.getFileName()); return FileVisitResult.CONTINUE; } @Override public FileVisitResult postVisitDirectory(Path dir, IOException exc) { System.out.println("DIRECTORY VISITED: " + dir.toString()); return FileVisitResult.CONTINUE; } @Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { System.out.println("VISITING:"+dir.toString()); return FileVisitResult.CONTINUE; } @Override public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException { System.out.println("COULD NOT VISIT FILE"); return FileVisitResult.CONTINUE; }}
在上面的示例中。
visitFile()方法在文件被访问时候调用,注意visitFile()的参数attrs是文件属性 ,可以获得文件的创建或修改日期等文件属性
preVistidirectory() 这个方法在访问文件前调用。注意。如果结果是FileVistiResult。 SKIP_SUBTREE 目录的内容将被访问。
postVistiDirectory() 这个方法在文件被访问后调用,所有的contentets将被访问。 最后
visitFileFailed()方法在文件不能被访问时候调用。 下面一个简单的例子来调用TraverseFiles 类。我们C盘创建以下这样的目录结构:
DirtoWalk | |-NewFolder |-TextDocument1.txt |-TextDocument.txt |-TextDocument(2).txt
为了访问DirtoWalk文件夹的内容。我们需要Files 这个类的walkFileTree 方法; 示例:
package java7test;import java.io.IOException;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.util.logging.Level;import java.util.logging.Logger;public class Java7test {    public static void main(String[] args) {         Path listDir=Paths.get("C://DirToWalk");       TraverseFiles traverse=new TraverseFiles();        try {            Files.walkFileTree(listDir,traverse );        } catch (IOException ex) {            Logger.getLogger(Java7test.class.getName()).log(Level.SEVERE, null, ex);        }    }        }
结果将是:
VISITING:C:\DirToWalk VISITING:C:\DirToWalk\New folder FILE VISETED:New Text Document1.txt VISITED: C:\DirToWalk\New folder FILE VISETED:New Text Document (2).txt FILE VISETED:New Text Document.txt VISITED: C:\DirToWalk

转载于:https://my.oschina.net/u/265943/blog/292871

你可能感兴趣的文章
Python图片裁剪实例代码(如头像裁剪)
查看>>
【虚拟机】oracle Virtual Box4.2.6虚拟机正在运行的过程中删除了其上的一个备份,之后虚拟机就无法使用了...
查看>>
数据库MySQL--条件查询/排序查询
查看>>
资源文件加载(Pack URI 方案)
查看>>
步步为营:Asp.Net使用HttpWebRequest通知,抓取,采集
查看>>
求2维数组相邻元素的和的最大值
查看>>
大数据开发实战:离线大数据处理的主要技术--Hive,概念,SQL,Hive数据库
查看>>
VsCode使用之HTML 中 CSS Class 智能提示
查看>>
JMeter基础之一 一个简单的性能测试
查看>>
【转】性能测试工具 性能测试如何做?
查看>>
fullpage.js禁止滚动
查看>>
LoadRunner中响应时间与事物时间详解
查看>>
ZigZag Conversion
查看>>
Android 通过HTTPCLINET POST请求互联网数据
查看>>
Hadoop集群的配置(一)
查看>>
Kafka 学习笔记之 Consumer API
查看>>
教程-Close、Halt、terminate、ExitProcess的区别
查看>>
10款很好用的 jQuery 图片滚动插件
查看>>
teacher forcing
查看>>
Linux命令小记
查看>>