import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.HashSet; public class analyse { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub HashSet uniqueIPS = new HashSet(); //open file File f = new File("C:\\Users\\Alex\\Desktop\\weblog\\2009-10.txt"); FileInputStream fis = new FileInputStream(f); BufferedInputStream bis = new BufferedInputStream(fis); DataInputStream dis = new DataInputStream(bis); //read line one by one String record = null; int count=0; int msie=0; int notmsie=0; //int DN40=0; int DN35=0; int DN30=0; int DN20=0; int DN11=0; int DN10=0; while ( (record=dis.readLine()) != null ) { String[] ipaddy = record.split(" "); //System.out.println(ipaddy[0]); if(uniqueIPS.contains(ipaddy[0])){ continue; }else{ uniqueIPS.add(ipaddy[0]); count++; if(record.contains("MSIE")){ msie++; if(record.contains(".NET CLR 4.0")){ DN35++; }else if(record.contains(".NET CLR 3.5")){ DN35++; }else if(record.contains(".NET CLR 3.0")){ DN30++; }else if(record.contains(".NET CLR 2.0")){ DN20++; }else if(record.contains(".NET CLR 1.1")){ DN11++; }else if(record.contains(".NET CLR 1.0")){ DN10++; }else{ } } else{ notmsie++; } } } //System.out.println("4.0:"+DN40+ " "+(DN40+0.0)/msie); double percentage=0; percentage=(DN35+0.0)/msie; System.out.println("3.5:"+percentage); percentage=(DN30+0.0)/msie; System.out.println("3.0:"+percentage); percentage=(DN20+0.0)/msie; System.out.println("2.0:"+percentage); percentage=(DN11+0.0)/msie; System.out.println("1.1:"+percentage); percentage=(DN10+0.0)/msie; System.out.println("1.0:"+percentage); System.out.println("None:"+(msie-DN35-DN30-DN20-DN11-DN10)+ " "+(msie-DN35-DN30-DN20-DN11-DN10+0.0)/msie); System.out.println("all:"+count); System.out.println("msie:"+msie); System.out.println("nms"+notmsie); } }