写入文件的目录。代码通过找目录下的文件,进行相关函数的操作。如果目录下面包含子目录。代码设有调用递归的方法,在寻找子目录下的文件

在进行相关的函数操作。函数主要是按用户输入的个数要求输出文件中出现次数最多的前几位字母。

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对于目录下的相关文件的单词操作的更多相关文章

  1. java读取目录下所有csv文件数据,存入三维数组并返回

    package dwzx.com.get; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; ...

  2. Java 读取目录下的所有文件

    package util; import java.io.File; import java.util.ArrayList; import java.util.List; import org.apa ...

  3. Java查询目录下的所有文件(包括子目录)

    目录图: 方法代码: /** * 读取目录下的所有文件 * * @param dir * 目录 * @param fileNames * 保存文件名的集合 * @return */ public st ...

  4. java 20 -3 递归之删除特定目录下的特定文件

    /* 需求:删除H:\demo目录下的带内容的文件 分析: A:封装该目录 B:获取该目录下所有的文件或文件夹的File数组 C:遍历该File数组,获取每一个File对象 D:判断所遍历的FIle对 ...

  5. java 提取目录下所有子目录的文件到指定位置

    package folder; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundExcept ...

  6. java压缩指定目录下的所有文件和文件夹的代码

    将代码过程较好的代码段备份一下,下边资料是关于java压缩指定目录下的所有文件和文件夹的代码,希望对码农有帮助. String sourceDir="E:\test";int pa ...

  7. Java遍历一个目录下的所有文件

    Java遍历一个目录下的所有文件   Java工具中为我们提供了一个用于管理文件系统的类,这个类就是File类,File类与其他流类不同的是,流类关心的是文件的内容,而File类关心的是磁盘上文件的存 ...

  8. 复制D:\\day05目录下的所有文件到D:\\copy,并将.txt文件改为.java文件。

    **解题思路: 1.首先定义一个静态的refile方法,参数传入两个文件路径 2.要复制目录下的所有文件,首先查询File类的方法,可以使用listFiles方法得到目录下的文件 3.想到这问题基本就 ...

  9. java获取ubuntu某个目录下的所有文件信息

    java获取ubuntu某个目录下的所有文件信息 public List<VCFile> getAllFiles(String basicDirName) { List<VCFile ...

随机推荐

  1. 适用于 macOS 下 2K 显示器开启 HiDPI 的简便解决方案

    前阵子入手了一款2k的显示器用于mbp的拓展屏幕,但由于苹果系统的严格限制,只有在4K及以上显示器上才能开启自带的HiDPI进行缩放以达到retina显示屏的效果.2k显示器下的字体会偏小发虚,使用1 ...

  2. Java第一节课动手动脑

    在第一节课的动手动脑中,主要解决四则运算问题. 首先第一个是出30道四则运算题目,在100以内.这个问题需要控制随机数生成的范围和结果的范围在100以内就可以. 第一次改进是3点:一为避免重复,二为定 ...

  3. ubuntu 16.04服务器安装apache2 + php + mysql

    具体操作 第一步:安装mysql apt-get install mysql-server mysql-client 第二步:安装apache2 apt-get install apache2 第三步 ...

  4. 小白学 Python 数据分析(20):pyecharts 概述

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  5. 软件版本管理工具-SVN

    一.SVN简介 Subversion(svn)是一款开发源代码的版本控制系统. repository(源代码库):源代码统一存放的地方 Checkout(检出):当你手上没有源代码的时候,你需要从re ...

  6. JAVA正则-检验QQ是否合法

    /* * 0不能开头,全数字,位数5-10位 * 123456 */ public static void checkQQ(){ String QQ = " 123456 "; / ...

  7. P5021 赛道修建 题解

    原题链接 简要题意: 在一棵树上求 \(m\) 条不相交的路径的最小值的最大值. 本题部分分很多,而且本人也交了 \(27\) 次,所以一定要仔细讲部分分! 算法一 对于 \(b_i = a_i + ...

  8. 从SqlSessionFactoryBean的引用浅谈spring两种bean模式

    mybatis是以一个 SqlSessionFactory 的实例为中心的.SqlSessionFactory可以通过SqlSessionFactoryBuilder获得实例.使用mybatis-sp ...

  9. 2020年PHP 面试问题(二)

    一.什么是 CGI?什么是 FastCGI?php-fpm,FastCGI,Nginx 之间是什么关系? CGI,通用网关接口,用于WEB服务器和应用程序间的交互,定义输入输出规范,用户的请求通过WE ...

  10. 老板说,Vim宏都不会用,你的工作效率太低啦~

    工作中,对于文本文件的编辑我们经常有这样的需求: 多次重复输入一段相同文本: 生成一段序列化的文本: 每行文本插入一句相同的文本. 除此之外,还有很多需要重复操作的动作.对于这些需求,如果我们人工去操 ...