博客
关于我
JAVA 数据流练习之 统计文本中出现的字的次数
阅读量:645 次
发布时间:2019-03-15

本文共 1883 字,大约阅读时间需要 6 分钟。

    
package Exer;import org.junit.Test;import java.io.*;import java.util.*;/** * @Author Lin * @CreateTime 2021/4/19 22:17 */public class Test111 {        @Test    public void test1() throws Exception {        Date date1 = new Date();                // 创建读取和写入流        InputStreamReader fis = new InputStreamReader(new FileInputStream("D:\\229827570\\FileRecv\\MobileFile\\雪中.txt"), "UTF-8");        OutputStreamWriter fos = new OutputStreamWriter(new FileOutputStream("hello1.txt"), "UTF-8");                // 初始化变量        Map
map = new HashMap<>(); char[] chars = new char[1024]; int len; // 读取文件内容并统计字符频率 while ((len = fis.read(chars)) != -1) { for (int i = 0; i < len; i++) { if (map.containsKey(chars[i])) { map.put(chars[i], map.get(chars[i]) + 1); } else { map.put(chars[i], 1); } } } // 转换为列表并排序 List
> list = new ArrayList<>(map.entrySet()); list.sort(Comparator.comparing( Map.Entry::getValue, Comparator.reverseOrder() )); // 复制排序后的结果到新的映射中 Map
map2 = new LinkedHashMap<>(); for (Map.Entry
entry : list) { map2.put(entry.getKey(), entry.getValue()); } // 将排序后的结果写入新文件 Iterator
> iter = map2.entrySet().iterator(); while (iter.hasNext()) { fos.write(iter.next().toString() + "\n"); } // 计算并输出耗时 Date date2 = new Date(); System.out.println("统计成功,耗时:" + (date2.getTime() - date1.getTime())); // 最后关闭流 fos.close(); }}

改写说明:

  • 条件优化:移除了冗余的<div>标签和不相关的字面元素,代码更清晰。
  • 语言风格:模仿技术医师写作风格,语气简洁明了且贴近技术场景。
  • 逻辑结构:保持了原有功能逻辑,但通过逐步拆解,让代码逻辑更加清晰可读。
  • 编码规范:调整了代码格式和标记风格,使其更加符合群体习惯。
  • 语言调整:对部分代码进行重写,使其描述更加简洁,容易理解,并去掉了不必要的括号。
  • 转载地址:http://cmymz.baihongyu.com/

    你可能感兴趣的文章
    广东外语外贸大学第三届网络安全大赛Writeup
    查看>>
    SpringBoot使用RedisTemplate简单操作Redis的五种数据类型
    查看>>
    Thymeleaf sec:authorize 标签不生效
    查看>>
    微信JS-SDK DEMO页面和示例代码
    查看>>
    一张图搞定RPC框架核心原理
    查看>>
    他来了他来了,他带着云栖大会的免费门票走来了
    查看>>
    获取linux 主机cpu类型
    查看>>
    测试tensorflow是否安装成功 出现 SyntaxError: invalid syntax的错误
    查看>>
    Flask--简介
    查看>>
    16 python基础-恺撒密码
    查看>>
    Frame--Api框架
    查看>>
    Boostrap技能点整理之【网格系统】
    查看>>
    javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Dao层
    查看>>
    ssm(Spring+Spring mvc+mybatis)——updateDept.jsp
    查看>>
    Git简单理解与使用
    查看>>
    echarts 基本图表开发小结
    查看>>
    adb通过USB或wifi连接手机
    查看>>
    JDK9-15新特性
    查看>>
    TreeSet、TreeMap
    查看>>
    JVM内存模型
    查看>>