我编写了一个简单的程序,使用条件格式将文本/日志文件中的内容读取到html。
以下是我的代码。
import java.io.*;
import java.util.*;
class TextToHtmlConversion {
public void readFile(String[] args) {
for (String textfile : args) {
try{
//command line parameter
BufferedReader br = new BufferedReader(new FileReader(textfile));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
Date d = new Date();
String dateWithoutTime = d.toString().substring(0, 10);
String outputfile = new String("Test Report"+dateWithoutTime+".html");
FileWriter filestream = new FileWriter(outputfile,true);
BufferedWriter out = new BufferedWriter(filestream);
out.write("<html>");
out.write("<body>");
out.write("<table width='500'>");
out.write("<tr>");
out.write("<td width='50%'>");
if(strLine.startsWith(" CustomerName is ")){
//System.out.println("value of String split Client is :"+strLine.substring(16));
out.write(strLine.substring(16));
}
out.write("</td>");
out.write("<td width='50%'>");
if(strLine.startsWith(" Logged in users are ")){
if(!strLine.substring(21).isEmpty()){
out.write("<textarea name='myTextBox' cols='5' rows='1' style='background-color:Red'>");
out.write("</textarea>");
}else{
System.out.println("else if block:");
out.write("<textarea name='myTextBox' cols='5' rows='1' style='background-color:Green'>");
out.write("</textarea>");
} //closing else block
//out.write("<br>");
out.write("</td>");
}
out.write("</td>");
out.write("</tr>");
out.write("</table>");
out.write("</body>");
out.write("</html>");
out.close();
}
//Close the input stream
in.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
e.printStackTrace();
}
}
}
public static void main(String args[]) {
TextToHtmlConversion myReader = new TextToHtmlConversion();
String fileArray[] = {"D:/JavaTesting/test.log"};
myReader.readFile(fileArray);
}
}
我正在考虑增强我的程序,而且我应该使用Maps或属性文件来存储搜索字符串。我正在寻找一种方法来避免使用substring方法(使用一行的索引)。任何建议都是真的很感激。
答案 0 :(得分:0)
从上到下:
Exception
总的来说:不要通过附加字符串来创建HTML,这对于它自己来说是一种糟糕的模式。但是,似乎你想做什么。
哦,还有一个:你的文本文件包含一些数据吗?如果您的数据代表某些实体(或对象),那么最好为此创建一个POJO。我认为你的文本文件包含用户(对吗?)。然后创建一个名为Users
的类并解析文本文件以获取其中所有用户的列表。类似的东西:
List<User> users = User.parse("your-file.txt");
之后你有一个很好的user
对象,所有丑陋的解析都在一个中心点。