Map容器练习
目的:通过FileInputStream类读入txt文件,然后利用Map这个容器统计txt文件中每个字符出现的次数.
import java.util.*; import java.io.*; public class ArgsMap { public static void main(String args[]) { FileInputStream f=null; try { f=new FileInputStream("io.txt"); } catch(Exception a) {System.out.println(a);} System.out.println("I don't care what's going on"); Integer ck=null; HashMap db=new HashMap(); try { int tem=f.read(); while(tem!=-1) { ck=(Integer)db.get((Character)(char)tem); db.put((Character)(char)tem,(ck==null)?1:ck+1); tem=(f.read()); System.out.println(db); } }catch (Exception e) { //Here I have lots of question 这里可以直接用父类Exception. 这儿不能用new一个exception System.out.println(e); } /*for(int i=0;i<args.length;i++) { ck=(Integer)db.get(args[i]); db.put(args[i],(ck==null)?1:ck+1); }*/ System.out.println(db); } }
/*这里有非常多的东西要注意:
1.在定义FileInputStream的时候,如果这样写:FileInputStream f=new FileInputStream("io.txt");
由于写FileInputStream("io.txt")必须要用try,所以这样会导致后面的f找不到,因为有可能try失败,
f将不会被创建,所以编译器会报错.所以应该先FileInputStream f=null;
2.tem一定要定义成int类型,不然在做while判断的时候会出错.这是tem永远不会等于-1,
因为char取不到-1,将造成while死循环.
3.不能直接将int型的tem之间构造成Character对象.一个是Integer一个是Character,不能转型成功
必须想将tem强制转换成int基础类型.然后再由基础类型包裹成Character类.
4.try--catch用法
5.就是JDK1.5 后基础数据类型可以自动包装成类,所以(Character)是可以省略掉的.
*/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端