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)是可以省略掉的.

 */


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值