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一個exceptionSystem.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)是可以省略掉的.
?*/
?
?
轉載于:https://www.cnblogs.com/jackhub/archive/2012/06/09/3147251.html
總結
- 上一篇: 算法 排序 python 实现--快速排
- 下一篇: Zend Framework数据库操作(