package com.hxh.spring.test; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.*; public class LogTest { private final static Logger logger = LoggerFactory.getLogger(LogTest.class); @Test public void testLog() throws FileNotFoundException { int count = 0; String path = ""; Scanner scanner = new Scanner(new FileInputStream("C:\\Users\\Administrator\\Desktop\\日志\\布丸播放\\video_play.2021-03-12.log")); while (scanner.hasNextLine()) { String text = scanner.nextLine(); if (text != null && text.contains("getUserVideoDetail:")) { String content = text.split("getUserVideoDetail:")[1]; content = content.replace("##", "# #"); String[] sts = content.split("#"); // device,utdId, loginUid, detailSystemId, videoId, resourceId, from resource(sts[4]); video(sts[3]); count++; } } scanner.close(); System.out.println(count); printMap(resourceMap); printMap(videoMap); } Map resourceMap = new HashMap<>(); private void resource(String resourceId) { Integer r = resourceMap.get(resourceId); if (r == null) { resourceMap.put(resourceId, 0); } resourceMap.put(resourceId, resourceMap.get(resourceId) + 1); } Map videoMap = new HashMap<>(); private void video(String videoId) { Integer r = videoMap.get(videoId); if (r == null) { videoMap.put(videoId, 0); } videoMap.put(videoId, videoMap.get(videoId) + 1); } private void printMap(Map map) { //list排序 TreeMap> ordersMap = new TreeMap<>(Comparator.reverseOrder()); for (Iterator its = map.keySet().iterator(); its.hasNext(); ) { String key = its.next(); Integer value = map.get(key); if (ordersMap.get(value) == null) { ordersMap.put(value, new HashSet<>()); } ordersMap.get(value).add(key); } int p = 0; for (Iterator its = ordersMap.keySet().iterator(); its.hasNext(); ) { Integer key = its.next(); System.out.println(key + ":" + ordersMap.get(key)); p++; if (p > 100) { break; } } } }