ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

IO流,获取文本上字符出现的次数。

2020-06-27 18:56:32  阅读:254  来源: 互联网

标签:字符 key get IO write tm bw new 文本


public class Test3{

  public static void main(String[] args){

   1.创建带缓冲的输入流对象

    BufferedReader br = new BufferedReader (new FileReader("zzz.txt"));

   2.创建双列集合对象TreeMap

    TreeMap<Character,Integer> tm = new TreeMap<>();

   3.将读到的字符存储在在双列集合中,存储的时候要做判断,如果不包含这个键,就将键和1存储,如果包含这个键,就将键和值加1存储

    int ch;

    while((ch = br.read()) != -1){

      char c = (char)ch;   //向下强制转型

      if(!tm.containsKey(c)){

        tm.put(c,1);

      }else{

        tm.put(c,tm.get(c)+1);

      }                                                                         [用三元运算符:tm.put(c,!tm.containsKey(c) ? 1 : tm.get(c)+1);]

    }

 4.关闭输入流

    br.close();  

   5.创建输出流对象

    BufferedWriter bw = new BufferedWriter (new FileWriter("times.txt"));

 6.遍历集合将集合中的内容写到times.txt中

    for(Character key : tm.keySet()){

     Switch(key) {

      case '\t':

        bw.write("\\t" + "=" +tm.get(key));

        break;

      case '\n':

        bw.write("\\n" + "=" +tm.get(key));

        break;

      case '\r':

        bw.write("\\r" + "=" +tm.get(key));

        break;

      default:

         bw.write(key + "=" + tm.get(key));         //写出键和值

        break;

    }

     bw.newLine(); 

  }

  7.关闭输出流

    bw.close();                 

  }

}

标签:字符,key,get,IO,write,tm,bw,new,文本
来源: https://www.cnblogs.com/wangffeng293/p/13199318.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有