博客
关于我
JAVA 数据流练习之 统计文本中出现的字的次数
阅读量:644 次
发布时间: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/

    你可能感兴趣的文章
    ThreadLocal原理、ThreadLocal内存泄漏
    查看>>
    sgu106——求解二元一次不定式(扩展欧几里得
    查看>>
    Educational Codeforces Round 98B——Toy Blocks
    查看>>
    Swap——二分图最大匹配
    查看>>
    kuangbin带你飞 KMP & 扩展KMP & Manacher总结(一)
    查看>>
    PhotoshopCC2019制作表情包
    查看>>
    HTML5新特性drag API 实现图片拖拽功能(原生JS,Vue, React)
    查看>>
    超好用的原生 JS + Canvas 进行图片压缩
    查看>>
    node 环境使用七牛云完成文件的上传下载与管理
    查看>>
    Android简单MVP解析接口列表,搜索框,点击切换
    查看>>
    ADB
    查看>>
    响应的HTTP协议格式+常见的响应码
    查看>>
    Java数组
    查看>>
    创建线程方式
    查看>>
    线程池
    查看>>
    Netty读写方法
    查看>>
    LRUCache
    查看>>
    Mac上如何强制关闭应用
    查看>>
    SpringBoot @Value与@ConfigurationProperties比较
    查看>>
    关于Linux系统中touch命令的说明
    查看>>