这篇文章主要介绍了Java递归遍历文件目录代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
创新互联公司自2013年起,先为潘集等服务建站,潘集等地企业,进行企业商务咨询服务。为潘集企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。在读取文件降序输出单词及其个数的基础上,将txt文件存入文件夹中,开始递归遍历文件目录,之后输出txt文件中的单词及其个数,仍然是降序排列。
代码如下
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.Map; import java.util.Map.Entry; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; public class Traverse4 { public static void main(String[] args) { Traverse4 K = new Traverse4(); //调用遍历方法 K.Run("E:\\article"); } //递归遍历文件 public void Run(String AllFile) { File tfile = new File(AllFile); //构建文件数组 File[] files = tfile.listFiles(); for(int i = 0; i < files.length; i++) { //判定该文件是否为目录 if(files[i].isDirectory()) { //是,递归调用函数 Run(files[i].getAbsolutePath()); }else { //不是,读取文件输出单词个数 System.out.println("**********"+files[i].getAbsolutePath()+"**********"); ReadFile(files[i].getAbsolutePath()); } } } //统计单词个数,排序,输出 public void ReadFile(String fname) { File file=new File(fname); try { FileReader fr = new FileReader(file); BufferedReader bufr = new BufferedReader(fr); String s = null; //创建哈希表 Map<String,Integer> hm = new HashMap<>(); while((s=bufr.readLine())!=null){ //利用正则表达式分割出单词 String[]strs = s.split("[^a-zA-Z0-9]"); //向哈希表存入单词,统计个数 for(int i = 0; i < strs.length; i++){ strs[i].toLowerCase(); if(!hm.containsKey(strs[i])){ hm.put(strs[i], 1); }else{ Integer counts = hm.get(strs[i]); hm.put(strs[i], counts+1); } } } //调用排序方法 sort(hm); bufr.close(); fr.close(); }catch(Exception e){ e.printStackTrace(); } } public void sort(Map<String,Integer>map) { //重写List降序排序 List<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>(map.entrySet()); Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return (o2.getValue() - o1.getValue()); } }); //输出 for (int i = 0; i < infoIds.size(); i++) { Entry<String, Integer> id = infoIds.get(i); System.out.println(id.getKey()+":"+id.getValue()); } } }
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页题目:Java递归遍历文件目录代码实例-创新互联
文章位置:https://www.cdcxhl.com/article22/hgijc.html
成都网站建设公司_创新互联,为您提供建站公司、网站维护、做网站、手机网站建设、网站设计、网站设计公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联