统计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("
");
					}
				}
			}
		}
		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

 

原文地址:https://www.cnblogs.com/wmiot/p/11101515.html