java对于目录下的相关文件的单词操作
写入文件的目录。代码通过找目录下的文件,进行相关函数的操作。如果目录下面包含子目录。代码设有调用递归的方法,在寻找子目录下的文件
在进行相关的函数操作。函数主要是按用户输入的个数要求输出文件中出现次数最多的前几位字母。
package com.keshangone; //将想要输出的数据写入新的文件里面
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保存映射,和数组类似
File file=new File(file1);
FileReader fr=new FileReader(file);
try
{
BufferedReader bd=new BufferedReader(fr);
String wen=null;
while((wen=bd.readLine())!=null)//读入一行数据
{
String []word=wen.split(" ");//通过空格将整行数据分成多个字符串并保存在字符串数组里
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);//为他出现的次数加一
}
else
map.put(word[i].toLowerCase(),1);//如果从未出现过就将他的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("数据输出的指向文件不存在已经为您新建一个以保留运行结果请继续操作");
}
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;
//找出出现次数最多的单词
Set<String> set=map.keySet();//构建map集合所有key对象集合
Iterator <String> it=set.iterator();//创建集合迭代器
while(it.hasNext())
{
String key1=it.next();
Integer a2=map.get(key1);
if(a2>max1)
{
max1=a2;
max2=key1;
}
}
//主要是为了判断是否会出现出现次数相同的单词
Set<String> set2=map.keySet();//构建map集合所有key对象集合
Iterator <String> it2=set2.iterator();//创建集合迭代器
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();//创建集合迭代器
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("出现次数排在第 "+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();
} 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对于目录下的相关文件的单词操作的更多相关文章
- java读取目录下所有csv文件数据,存入三维数组并返回
package dwzx.com.get; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; ...
- Java 读取目录下的所有文件
package util; import java.io.File; import java.util.ArrayList; import java.util.List; import org.apa ...
- Java查询目录下的所有文件(包括子目录)
目录图: 方法代码: /** * 读取目录下的所有文件 * * @param dir * 目录 * @param fileNames * 保存文件名的集合 * @return */ public st ...
- java 20 -3 递归之删除特定目录下的特定文件
/* 需求:删除H:\demo目录下的带内容的文件 分析: A:封装该目录 B:获取该目录下所有的文件或文件夹的File数组 C:遍历该File数组,获取每一个File对象 D:判断所遍历的FIle对 ...
- java 提取目录下所有子目录的文件到指定位置
package folder; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundExcept ...
- java压缩指定目录下的所有文件和文件夹的代码
将代码过程较好的代码段备份一下,下边资料是关于java压缩指定目录下的所有文件和文件夹的代码,希望对码农有帮助. String sourceDir="E:\test";int pa ...
- Java遍历一个目录下的所有文件
Java遍历一个目录下的所有文件 Java工具中为我们提供了一个用于管理文件系统的类,这个类就是File类,File类与其他流类不同的是,流类关心的是文件的内容,而File类关心的是磁盘上文件的存 ...
- 复制D:\\day05目录下的所有文件到D:\\copy,并将.txt文件改为.java文件。
**解题思路: 1.首先定义一个静态的refile方法,参数传入两个文件路径 2.要复制目录下的所有文件,首先查询File类的方法,可以使用listFiles方法得到目录下的文件 3.想到这问题基本就 ...
- java获取ubuntu某个目录下的所有文件信息
java获取ubuntu某个目录下的所有文件信息 public List<VCFile> getAllFiles(String basicDirName) { List<VCFile ...
随机推荐
- 自动控制理论的MATLAB仿真实例(二)
%求方程的解 x=sym('x'); fx=(3*x*x+2*x)*(x*x+2.32*x+4)-(2*x+2.32)*(x*x*x+x*x) fx =
- vux中表单验证,在提交时自动聚焦到未验证通过的那栏;及循环表单的验证
首先vux中的表单验证在点击触发,失焦时才显示错误信息,如果不管它,它就没反应,这显然是不合理的:解决办法就是:在提交时做验证,不通过的话就使用.focus()及.blur()方法给它聚焦,失焦. i ...
- js 实现字符串的查找和替换
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Mybatis(一)Mybatis相关概念
1.1 传统的JDBC实现 public static void main(String[] args) { Connection connetion = null; PreparedStatemen ...
- 扩展gRPC支持consul服务发现和Polly策略
gRPC由于需要用工具生成代码实现,可开发性不是很高,在扩展这方面不是很友好 最近研究了下,进行了扩展,不需要额外的工具生成,直接使用默认Grpc.Tools生成的代理类即可 相关源码在文章底部 客户 ...
- vue使用lodop打印控件实现浏览器兼容打印
前言 此控件直接进行打印底部会有水印,通过官网购买可以解决: 如不想购买,可先执行预览,弹出预览框进行打印: 需要用到的js文件和api文档附后,请注意查看. 首先需要在局部或全局引入LodopFun ...
- CVE-2013-4710 WebView addJavascriptInterface远程执行代码
WebView是Android平台下的一个重要组件,通常用来在Activity中嵌入一个简单的浏览器,实现在线网页浏览的功能.比如下面代码实现访问Google页面: WebView webView = ...
- 深入Redis客户端(redis客户端属性、redis缓冲区、关闭redis客户端)
深入Redis客户端(redis客户端属性.redis缓冲区.关闭redis客户端) Redis 数据库采用 I/O 多路复用技术实现文件事件处理器,服务器采用单线程单进程的方式来处理多个客户端发送过 ...
- 文件解析漏洞总结(IIS,APACHE,NGINX)
(本文主体来自https://blog.csdn.net/qq_36119192/article/details/82834063) 文件解析漏洞 文件解析漏洞主要由于网站管理员操作不当或者 Web ...
- 用序列到序列和注意模型实现的:Translation with a Sequence to Sequence Network and Attention
In this project we will be teaching a neural network to translate from French to English. 最后效果: [KEY ...