java对于目录下文件的单词查找操作代码实现
这篇文章主要介绍了java对于目录下文件的单词查找操作代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
写入文件的目录。代码通过找目录下的文件,进行相关函数的操作。如果目录下面包含子目录。代码设有调用递归的方法,在寻找子目录下的文件
在进行相关的函数操作。函数主要是按用户输入的个数要求输出文件中出现次数最多的前几位字母。
packagecom.keshangone;
//将想要输出的数据写入新的文件里面
importjava.util.*;
importjava.io.*;
importjava.util.Scanner;
publicclasszongword
{
staticpublicvoidgongneng(Stringfile1)throwsIOException
{
System.out.println("想要输出前几个的单词");
Scannersc1=newScanner(System.in);
intwww=sc1.nextInt();
intww=0;
intha=0;
Mapmap=newHashMap<>();//通过map保存映射,和数组类似
Filefile=newFile(file1);
FileReaderfr=newFileReader(file);
try
{
BufferedReaderbd=newBufferedReader(fr);
Stringwen=null;
while((wen=bd.readLine())!=null)//读入一行数据
{
String[]word=wen.split("");//通过空格将整行数据分成多个字符串并保存在字符串数组里
ha+=word.length;
for(inti=0;iset=map.keySet();//构建map集合所有key对象集合
Iteratorit=set.iterator();//创建集合迭代器
while(it.hasNext())
{
Stringkey1=it.next();
Integera2=map.get(key1);
if(a2>max1)
{
max1=a2;
max2=key1;
}
}
//主要是为了判断是否会出现出现次数相同的单词
Setset2=map.keySet();//构建map集合所有key对象集合
Iteratorit2=set2.iterator();//创建集合迭代器
while(it2.hasNext())
{
Stringkey2=it2.next();
Integera3=map.get(key2);
if(a3==max1)
{
Setset3=map.keySet();//构建map集合所有key对象集合
Iteratorit3=set2.iterator();//创建集合迭代器
while(it3.hasNext())
{
Stringkey4=it3.next();
Integera4=map.get(key4);
if(a4==a3)
{
if(key2.compareTo(key4)<0)
{
key2=key4;
}
}
}
if(max1==0)
{
break;
}
bw.write("出现次数排在第"+b+"位的单词是"+key2+"出现次数是"+a3);
bw.newLine();
System.out.print("单词"+key2+"次数"+a3+"");
if(ww==www)
{
System.out.println();
break;
}
ww++;
map.put(key2,0);//输出之后让他的values变为0,防止阻碍后面的判断
}
}
if(ww==www)
{
System.out.println();
break;
}
}
System.out.println("相关数据已经全部写入相应的文件夹里(在屏幕上也进行了显示)");
bw.close();
fw.close();
}
staticprivatevoidgetDirectory(Filefile)throwsIOException
{
Fileflist[]=file.listFiles();
if(flist==null||flist.length==0){
return;
}
for(Filef:flist){
if(f.isDirectory()){
//这里将列出所有的文件夹
getDirectory(f);
//getDirectory(f);
}else
{
System.out.println("file==>"+f.getAbsolutePath());
gongneng(f.getAbsolutePath());
System.out.println();
}
}
}
staticintq1=0;
staticScannersc=newScanner(System.in);
publicstaticvoidmain(String[]args)throwsIOException
{
Stringpath="D:\\新建文件夹(10)";
Filefm=newFile(path);
getDirectory(fm);
}
}
主要是关于文件目录中寻找文件,以及递归调用的相关操作。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。