java对于目录下文件的单词查找操作代码实现

这篇文章主要介绍了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);
  }
}

主要是关于文件目录中寻找文件,以及递归调用的相关操作。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java中FTPClient上传中文目录、中文文件名乱码问题解决方法

    问题描述: 使用org.apache.commons.net.ftp.FTPClient创建中文目录.上传中文文件名时,目录名及文件名中的中文显示为"??". 原因: FTP协议里面,规定文件名编码为iso-8859-1,所以目录名或文件名需要转码. 解决方案: 1.将中文的目录或文件名转为iso-8859-1编码的字符.参考代码: 复制代码 代码如下: String name="目录名或文件名"; name=new String(name.getBytes(&qu

  • Java实现文件或文件夹的复制到指定目录实例

    整理文档,搜刮出一个Java实现文件或文件夹的复制到指定目录的代码,稍微整理精简一下做下分享. import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class Test { private static int a = 5; public static void main(String[] args) { //需要复制的目标文件或目标文件夹 String path

  • Java实现上传文件图片到指定服务器目录

    具体代码如下所示: ***web.xml*** <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xm

  • java读取resource目录下文件的方法示例

    本文主要介绍的是java读取resource目录下文件的方法,比如这是你的src目录的结构 ├── main │ ├── java │ │ └── com │ │ └── test │ │ └── core │ │ ├── bean │ │ ├── Test.java │ └── resources │ └── test │ ├── test.txt └── test └── java 我们希望在Test.java中读取test.txt文件中的内容,那么我们可以借助Guava库的Resource

  • Java实现实时监控目录下文件变化的方法

    一.commons-io方法 1.使用Commons-io的monitor下的相关类可以处理对文件进行监控,它采用的是观察者模式来实现的 (1)可以监控文件夹的创建.删除和修改 (2)可以监控文件的创建.删除和修改 (3)采用的是观察者模式来实现的 (4)采用线程去定时去刷新检测文件的变化情况 2.引入commons-io包,需要2.0以上. <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <depend

  • Java创建删除文件和目录的方法(推荐)

    创建和删除文件/目录常用的File类的方法 1.boolean exists():判断文件或目录是否存在 2.boolean createNewFile():创建新文件 3.boolean delete():删除文件 4.boolean mkdirs():递归创建多级目录 5.File getParentFile():获取上级目录 1.创建/删除文件 try { //在D盘demo目录新建文件:test.txt File file = new File("D:\\demo\\test.txt&q

  • Java如何在不存在文件夹的目录下创建文件

    核心代码如下所示: 1. String strPath = "E:\\a\\aa\\aaa.txt"; File file = new File(strPath); if(!file.exists())){ file.file.mkdirs(); } 2. String strPath = "E:\\a\\aa\\aaa.txt"; File file = new File(strPath); File fileParent = file.getParentFile

  • java删除指定目录下指定格式文件的方法

    本文实例为大家分享了java删除指定目录下指定格式文件的具体代码,供大家参考,具体内容如下 正在看疯狂java讲义这本书,发现源码中有我不需要的class文件,想批量把它删除 代码如下: import java.io.File; public class Main { static int count = 0; public static void main(String[] args) { //路径 String path="/media/lcy/Data/Workspaces/java/cr

  • java对于目录下文件的单词查找操作代码实现

    这篇文章主要介绍了java对于目录下文件的单词查找操作代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 写入文件的目录.代码通过找目录下的文件,进行相关函数的操作.如果目录下面包含子目录.代码设有调用递归的方法,在寻找子目录下的文件 在进行相关的函数操作.函数主要是按用户输入的个数要求输出文件中出现次数最多的前几位字母. package com.keshangone; //将想要输出的数据写入新的文件里面 import java.util

  • 批量转换目录下文件编码的shell脚本代码

    一例批量转换目录下文件编码的shell脚本代码. 需求描述:由于从window转linux过来,很多原来win下的gbk文件需要转换成utf8. 以下脚本仅判断非utf8文件转换成utf8文件,并且默认非utf8文件为gbk,如果文件类型不一致需要修改. 例子: 复制代码 代码如下: #!/bin/bash# File Name: iconv.sh# Author: wanggy# site: www.jb51.net#show_file(){    for file in `ls $1`   

  • java将一个目录下的所有文件复制n次

    本文实例为大家分享了java将一个目录下的所有文件复制n次的具体代码,供大家参考,具体内容如下 1. 文件复制示意图 2.java程序 (1).调用 final static String SOURCESTRING = "/Users/amarao/360/download/test/"; final static String OUTPUTSTRING = "/Users/amarao/360/download/test4/"; public static voi

  • python获取文件后缀名及批量更新目录下文件后缀名的方法

    本文实例讲述了python获取文件后缀名及批量更新目录下文件后缀名的方法.分享给大家供大家参考.具体实现方法如下: 1. 获取文件后缀名: 复制代码 代码如下: #!/usr/bin/python import os dict = {} for d, fd, fl in os.walk('/home/ahda/Program/'):         for f in fl:                 sufix = os.path.splitext(f)[1][1:]           

  • C++ 遍历目录下文件简单实现实例

    C++ 遍历目录下文件 function:遍历目录下所有文件,返回文件总数,子文件夹总数(修改一下可以获得全部文件名等). 实例代码: #include "stdlib.h" #include "direct.h" #include "string.h" #include "io.h" #include "stdio.h" #include "iostream" using namesp

  • php遍历替换目录下文件指定内容的方法

    本文实例讲述了php遍历替换目录下文件指定内容的方法.分享给大家供大家参考,具体如下: 在php中目录访问需要遍历了然后文件需要一个个打开进行访问操作了,下面我们来看一段php 替换目录下文件指定内容,具体如下: /**************************** * 获取目录下的所有文件 * [$dir] 文件夹路径 ****************************/ function deepScanDir($dir) { $fileArr = array (); $dirA

  • java将一个目录下的所有数据复制到另一个目录下

    本文实例为大家分享了java将一个目录下的所有数据复制到另一个目录下的具体代码,供大家参考,具体内容如下 /* 将"C:\\JavaProducts\\Source"下的所有数据复制到"C:\\Target"下 */ import java.io.*; public class JavaCopyDemo{ final static String SOURCESTRING = "C:\\JavaProducts\\Source"; final st

  • python连接远程ftp服务器并列出目录下文件的方法

    本文实例讲述了python连接远程ftp服务器并列出目录下文件的方法.分享给大家供大家参考.具体如下: 这段python代码用到了pysftp模块,使用sftp协议,对数据进行加密传输 import pysftp srv = pysftp.Connection(host="your_FTP_server", username="your_username",password="your_password") # Get the directory

  • python实现搜索指定目录下文件及文件内搜索指定关键词的方法

    本文实例讲述了python实现搜索指定目录下文件及文件内搜索指定关键词的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python -O # -*- coding: UTF-8 -*- """ Sucht rekursiv in Dateiinhalten und listet die Fundstellen auf. """ __author__ = "Jens Diemer" __license__

随机推荐