java對于目錄下文件的單詞查找操作代碼實現(xiàn)
這篇文章主要介紹了java對于目錄下文件的單詞查找操作代碼實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
寫入文件的目錄。代碼通過找目錄下的文件,進行相關函數(shù)的操作。如果目錄下面包含子目錄。代碼設有調用遞歸的方法,在尋找子目錄下的文件
在進行相關的函數(shù)操作。函數(shù)主要是按用戶輸入的個數(shù)要求輸出文件中出現(xiàn)次數(shù)最多的前幾位字母。
package com.keshangone; //將想要輸出的數(shù)據(jù)寫入新的文件里面 import java.util.*; import java.io.*; import java.util.Scanner; public class zongword { static public void gongneng(String file1) throws IOException { System.out.println("想要輸出前幾個的單詞"); Scanner sc1=new Scanner(System.in); int www=sc1.nextInt(); int ww=0; int ha=0; Map<String,Integer> map=new HashMap<>();//通過map保存映射,和數(shù)組類似 File file=new File(file1); FileReader fr=new FileReader(file); try { BufferedReader bd=new BufferedReader(fr); String wen=null; while((wen=bd.readLine())!=null)//讀入一行數(shù)據(jù) { String []word=wen.split(" ");//通過空格將整行數(shù)據(jù)分成多個字符串并保存在字符串數(shù)組里 ha+=word.length; for(int i=0;i<word.length;i++) { if(word[i].equals(" ")) { continue; } if(map.containsKey(word[i].toLowerCase()))//檢查集合中是否有這個元素 { Integer a=map.get(word[i].toLowerCase()); a++; map.put(word[i].toLowerCase(), a);//為他出現(xiàn)的次數(shù)加一 } else map.put(word[i].toLowerCase(),1);//如果從未出現(xiàn)過就將他的values賦值為一 } map.put(" ",0); } fr.close(); }catch (Exception e)//程序的異常處理 { e.printStackTrace(); } File file2=new File("D:\\新建文件夾 (6)\\wen1.txt"); if(!file2.exists()) { try { file2.createNewFile(); System.out.println("數(shù)據(jù)輸出的指向文件不存在已經(jīng)為您新建一個以保留運行結果請繼續(xù)操作"); } catch(Exception e) { e.printStackTrace(); } } FileWriter fw=new FileWriter(file2); BufferedWriter bw=new BufferedWriter(fw); Integer max1; String max2=""; for(int b=1;b<=ha;b++) { max1=0; max2=null; //找出出現(xiàn)次數(shù)最多的單詞 Set<String> set=map.keySet();//構建map集合所有key對象集合 Iterator <String> it=set.iterator();//創(chuàng)建集合迭代器 while(it.hasNext()) { String key1=it.next(); Integer a2=map.get(key1); if(a2>max1) { max1=a2; max2=key1; } } //主要是為了判斷是否會出現(xiàn)出現(xiàn)次數(shù)相同的單詞 Set<String> set2=map.keySet();//構建map集合所有key對象集合 Iterator <String> it2=set2.iterator();//創(chuàng)建集合迭代器 while(it2.hasNext()) { String key2=it2.next(); Integer a3=map.get(key2); if(a3==max1) { Set<String> set3=map.keySet();//構建map集合所有key對象集合 Iterator <String> it3=set2.iterator();//創(chuàng)建集合迭代器 while(it3.hasNext()) { String key4=it3.next(); Integer a4=map.get(key4); if(a4==a3) { if(key2.compareTo(key4)<0) { key2=key4; } } } if(max1==0) { break; } bw.write("出現(xiàn)次數(shù)排在第 "+b+" 位的單詞是 "+key2+" 出現(xiàn)次數(shù)是 "+a3); bw.newLine(); System.out.print("單詞 "+key2+"次數(shù)"+a3+" "); if(ww==www) { System.out.println(); break; } ww++; map.put(key2,0);//輸出之后讓他的values變?yōu)?,防止阻礙后面的判斷 } } if(ww==www) { System.out.println(); break; } } System.out.println("相關數(shù)據(jù)已經(jīng)全部寫入相應的文件夾里(在屏幕上也進行了顯示)"); bw.close(); fw.close(); } static private void getDirectory(File file) throws IOException { File flist[] = file.listFiles(); if (flist == null || flist.length == 0) { return; } for (File f : flist) { if (f.isDirectory()) { //這里將列出所有的文件夾 getDirectory(f); //getDirectory(f); } else { System.out.println("file==>" + f.getAbsolutePath()); gongneng( f.getAbsolutePath()); System.out.println(); } } } static int q1=0; static Scanner sc=new Scanner(System.in); public static void main(String[] args)throws IOException { String path="D:\\新建文件夾 (10)"; File fm=new File(path); getDirectory(fm); } }
主要是關于文件目錄中尋找文件,以及遞歸調用的相關操作。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
java解析XML Node與Element的區(qū)別(推薦)
下面小編就為大家分享一篇java解析XML Node與Element的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01解決SpringMVC、tomcat、Intellij idea、ajax中文亂碼問題
這篇文章主要介紹了解決SpringMVC、tomcat、Intellij idea、ajax中文亂碼問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09SpringBoot集成redis實現(xiàn)分布式鎖的示例代碼
這篇文章主要介紹了SpringBoot集成redis實現(xiàn)分布式鎖的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01Java 信息摘要加密MD2、MD4、MD5實現(xiàn)詳解
這篇文章主要介紹了Java 信息摘要加密MD2、MD4、MD5實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-07-07