我正在编写一个程序来读取日志文件,然后计算某些字符串的显示次数.我试图手动输入字符串作为关键字,但由于有这么多,我认为搜索日志文件会更好,当遇到“ua”时,它应该创建一个从“ua”到该行的结尾,将其添加到hashmap,并增加该特定字符串的计数(我感兴趣的所有字符串都以“ua”开头).我似乎无法弄清楚如何将新字符串添加到hashmap中.这就是我到目前为止所拥有的.
public class Logs
{
public static void main(String args[]) throws IOException
{
Map dayCount = new HashMap();
for (String str : KeyWords)
{
dayCount.put(str,0);
}
File path = new File("C:\\P4logs");
for(File f: path.listFiles())
{ // this loops through all the files + directories
if(f.isFile())
{ // checks if it is a file,not a directory.
try (BufferedReader br = new BufferedReader(new FileReader(f.getAbsolutePath())))
{
String sCurrentLine;
while ((sCurrentLine = br.readLine()) != null)
{
boolean found = false;
for (String str : DayCount.keySet())
{
if (sCurrentLine.indexOf(str) != -1)
{
DayCount.put(str,DayCount.get(str) + 1);
found = true;
break;
}
}
if (!found && sCurrentLine.indexOf("ua,") != -1)
{
System.out.println("Found an unknown user action: " + sCurrentLine);
DayCount.put(key,value) //not sure what to put here
}
}
}
for(String str : KeyWords)
{
System.out.println(str + " = " + DayCount.get(str));
}
}
}
}
}