900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java中的相对路径和绝对路径 获取一个文本上每个字符出现的次数

java中的相对路径和绝对路径 获取一个文本上每个字符出现的次数

时间:2023-07-25 15:22:11

相关推荐

java中的相对路径和绝对路径 获取一个文本上每个字符出现的次数

相对路径:本文件同级下的文件,直接写文件名字,就是相对路径例如zzz.txt;,同级目录里有zzz.txt,直接写zzz.txt就是相对路径

绝对路径:文件在硬盘中真正存放的位置,例如 D:\JavaProjects\exceptionLianxi\src\main\java\zzz.txt 当然可以省略掉

**需求:**获取一个文本上每个字符出现的次数,将结果写在times.txt上

import java.io.*;import java.util.TreeMap;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class ziFuHuoQ {/* *获取一个文本上每个字符出现的次数,将结果写在times.txt上** 分析:* 1,创建带缓冲的输入流对象* 2,创建双列集合对象TreeMap* 3,将读到的字符存储在双列集合中,存储的时候要做判断,如果不包含这个键,就将键和1存储,如果包含这个键,就将该键和值加1存储* 4,关闭输入流* 5,创建输出流对象* 6,遍历集合将集合中的内容写到times.txt中* 7,关闭输出流* 流尽量晚开早关* */public static void main(String[] args) throws IOException {//1,创建带缓冲的输入流对象BufferedReader br = new BufferedReader ( new FileReader ( "src\\main\\java\\zzz.txt" ) );//2,创建双列集合对象TreeMapTreeMap<Character,Integer> tm = new TreeMap <Character, Integer> ();//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);}br.close (); //关闭流// 5,创建输出流对象//在这里times.txt你写的是相对路径,他这里的相对路径是从exceptionLianxi文件夹算起的所以,你直接写zzz它找不到知道了BufferedWriter bw = new BufferedWriter ( new FileWriter ( "src\\main\\java\\times.txt" ));// 6,遍历集合将集合中的内容写到times.txt中for (Character key : tm.keySet ()){switch (key){case'\n':bw.write ( "\\n" + "=" + tm.get ( key ));break;case'\t':bw.write ("\\t" + "=" + tm.get(key));case'\r':bw.write ( "\\r" + "=" + tm.get(key) );default:bw.write ( key + "=" + tm.get(key)); //写出键和值}bw.newLine ();}// 7,关闭输出流bw.close ();}}结果:\t=337\r=337=337 就是空格\n=168\r=168=168=189!=7"=50#=48(=109)=109*=37+=2,=52-=9.=97/=500=151=352=213=34=35=26=27=18=69=1:=1;=55==29?=2@=2B=24C=3F=30G=4I=23K=4L=15N=8O=23R=30S=21T=4U=4W=22[=2\=4]=2_=16a=95b=49c=43d=80e=292f=59g=4h=26i=117j=2l=80m=27n=94o=32p=21r=183s=42t=140u=56v=8w=66x=19y=8{=13}=13一=19上=5下=2不=7且=1个=9中=5串=1临=1为=8么=4义=1之=1也=1买=2乱=1了=4二=2交=2什=2从=3代=1以=15们=2件=14会=16传=1但=1低=2使=12倒=2候=7值=1先=3入=4关=8其=1具=1再=2写=25冲=6况=1几=1出=22函=1分=1创=7到=13前=2功=2动=1包=3区=4升=1半=1卓=1印=1原=1去=3反=2取=20变=1只=1可=16台=2号=7同=1后=5否=1含=1和=5回=2因=2图=2在=3多=1大=2如=5子=1字=55学=1安=1定=6对=7将=12小=2少=1就=5带=1干=1平=2并=1序=2库=1应=1建=7式=1引=1强=1当=3总=1您=1情=1成=1我=2或=1才=1打=1执=2找=1把=4拟=1拷=5持=1指=5按=2换=10据=5接=3推=1提=5支=1放=1效=4数=19文=23方=8时=13是=9替=1有=5本=10机=3构=1析=1果=6样=1档=1模=2次=14正=2段=2每=2没=1法=8流=41源=1满=3然=2照=2版=5率=2现=3用=26画=1的=46盘=1直=3相=1看=1知=1码=13示=2程=3符=47第=4类=4系=1级=1纯=2组=6结=2给=3统=2缓=6编=4置=2者=1联=5能=3自=2节=10若=1荐=1获=5行=16表=13被=2装=5要=8解=1计=2认=2设=3识=1试=4请=1读=23调=2象=5贝=5购=2资=1赋=1起=1跨=2转=14软=3载=1输=6过=3返=2还=3这=1进=1逐=1通=1造=1那=2醒=1释=1量=1键=1降=2需=5非=2饰=1高=4默=2

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。