如何读取以字符串开头的行:从文本文件中出错并使用 JAVA 将其邮寄给收件人
how to read lines start with string : Err from a text file and mail it to the recipients using JAVA
我有一个错误日志文本文件
现在我想阅读所有以文本 Err
开头的行,并使用 Java
[=16= 将其存储到 String Array
]
邮件内容已读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")
等,具体取决于您想要的过滤器。
我有一个错误日志文本文件
现在我想阅读所有以文本
Err
开头的行,并使用Java
[=16= 将其存储到String Array
]邮件内容已读
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")
等,具体取决于您想要的过滤器。