如何读取以字符串开头的行:从文本文件中出错并使用 JAVA 将其邮寄给收件人

how to read lines start with string : Err from a text file and mail it to the recipients using JAVA

  1. 我有一个错误日志文本文件

  2. 现在我想阅读所有以文本 Err 开头的行,并使用 Java[=16= 将其存储到 String Array ]

  3. 邮件内容已读String array

我的一段JAVA代码:

MimeMessage message = new MimeMessage(session); 
String pathLogFile = "D:/logfile.log";
Enumeration enumeration =    
CarParser1.logger.getRootLogger().getAllAppenders();
            while ( enumeration.hasMoreElements() ){
               Appender appender = (Appender) enumeration.nextElement();
               if ( appender instanceof FileAppender ){
                  pathLogFile  = ((FileAppender)appender).getFile();    
//here you get the path
                  break;
               }
            }
            StringBuffer sb = new StringBuffer();
            FileInputStream fstream = new FileInputStream(pathLogFile);
            BufferedReader br = new BufferedReader(new 
InputStreamReader(fstream));

            String singleLine;
            while ((singleLine = br.readLine()) != null) {
              sb.append(singleLine + "<br>");
            }
            br.close();
            String allLines = sb.toString();
     message.setContent(allLines, "text/html; charset=ISO-8859-1");
     Transport.send(message);
    System.out.println("Email Sent successfully....");

谁能帮我实现这个目标?

谢谢

现在您正在读取日志文件中的所有内容并将其发送到邮件正文中。您只需在 for 循环中添加一个附加条件即可过滤掉以 "Err"

开头的消息
String singleLine;
while ((singleLine = br.readLine()) != null) {
     if(singleLine.startsWith("Err")) //Filter Condition
          sb.append(singleLine + "<br>");
}

您也可以使用 contains("Err") 等,具体取决于您想要的过滤器。