统计IP地址C段出现多于5次的IP
作者:互联网
1、统计IP地址C段出现多于5次的IP
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class IPC5 { public static void main(String[] args) throws IOException { HashSet<String> hs = new HashSet<>(); BufferedReader br = new BufferedReader(new FileReader("D:\\ip.txt")); BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\ipnew.txt")); String line; while((line=br.readLine())!=null){ hs.add(line); } br.close(); ArrayList<String> list=new ArrayList<>(); list.addAll(hs); HashMap<String,Integer> hm=new HashMap<>(); for(int i=0;i<list.size();i++){ String[] str1 = list.get(i).split("\\.\\d*$"); //System.out.println(str1[0]); if(!hm.containsKey(str1[0])){ hm.put(str1[0], 1); } else{ hm.put(str1[0], hm.get(str1[0])+1); } } for(String key:hm.keySet()){ Integer num = hm.get(key); if(num>=5){ for(int i=0;i<list.size();i++){ if(list.get(i).split("\\.\\d*$")[0].equals(key)){ bw.write(list.get(i)); System.out.println(list.get(i)); bw.write("\r\n"); } } } } bw.close(); } }
1.1测试用例:
1.2效果如图:
2、java打jar包
(1)用记事本写IPC5.java的文件
(2)用命令行进入目录,编译这个文件
javac IPC5.java
(3)将编译后的IPC5.class文件打成jar包
jar -cvf IPC5.jar IPC5.class
c表示要创建一个新的jar包,v表示创建的过程中在控制台输出创建过程的一些信息,f表示给生成的jar包命名
(4)运行jar包
java -jar IPC5.jar 这时会报如下错误 IPC5.jar中没有主清单属性
添加Main-Class属性
用压缩软件打开IPC5.jar,会发现里面多了一个META-INF文件夹,里面有一个MENIFEST.MF的文件,用记事本打开
1 Manifest-Version: 1.0 2 Created-By: 1.8.0_121 (Oracle Corporation) 3
在第三行的位置写入 Main-Class: IPC5 (注意冒号后面有一个空格,整个文件最后有一行空行),保存
再次运行 java -jar IPC5.jar ,此时成功在控制台看到结果
(5)生成bat处理
新建IPC5.bat批处理,内容如下:
java -jar IPC5.jar pause
双击IPC5.bat执行效果如下:
参考
java打jar包的几种方式详解https://www.cnblogs.com/mq0036/p/8566427.html
标签:多于,java,IP,IP地址,jar,new,io,IPC5,import 来源: https://www.cnblogs.com/wmiot/p/11101515.html