Java - нужна помощь для улучшения кода
Я написал простую программу для чтения содержимого из текстового файла / файла журнала в 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);
}
}
Я думал об улучшении моей программы, и путаница в том, что я должен использовать Карты или файл свойств для хранения строки поиска. Я искал подход, чтобы избежать использования метода подстроки (с помощью индекса строки). Любые предложения действительно ценятся.
1 ответ
Сверху вниз:
- Не используйте импорт подстановочных знаков.
- Не используйте пакет по умолчанию
- реструктурируйте ваш метод readFile в более мелкие методы
- Используйте новый файловый API Java 7 для чтения файлов
- Попробуйте использовать try-блок с ресурсом (ваш файл)
- Я бы не стал непрерывно писать в файл, напиши в конце
- Не поймать генерала
Exception
- Используйте последний блок для закрытия ресурсов (или блок try, упомянутый ранее)
И вообще: не создавайте HTML, добавляя строки, это плохой шаблон сам по себе. Но хорошо, кажется, что ты хочешь делать.
редактировать
О, еще один: ваш текстовый файл содержит некоторые данные, верно? Если ваши данные представляют некоторые объекты (или объекты), было бы хорошо создать POJO для этого. Я думаю, что ваш текстовый файл содержит пользователей (верно?). Затем создайте класс с именем Users
и проанализировать текстовый файл, чтобы получить список всех пользователей в нем. Что-то вроде:
List<User> users = User.parse("your-file.txt");
После этого у вас есть хороший user
объект и весь ваш уродливый разбор находится в одной центральной точке.