我目前正在开发一个java应用程序,它将从特定文件夹中读取文本文件的内容。该应用程序已经能够读取文本文件的内容,但是,文本文件是服务器日志,我只需要从其内容中获取数据,例如错误名称,时间,日期等。有关如何执行此操作的任何想法,或者可以帮助我的功能?
为了更好地查看,这是我的代码。
public class ListFiles {
public static void main(String[] args) throws FileNotFoundException,
IOException {
// Directory path here
String path = "C:/Users/Pasusani/Desktop/logs";
String files;
File folder = new File(path);
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
files = listOfFiles[i].getName();
if (files.endsWith(".txt") || files.endsWith(".TXT")) {
if (listOfFiles[i].getName().equals("R320-txtfile.txt")) {
JOptionPane.showMessageDialog(null, listOfFiles[i]
.getName().toString());
String paths = "C:/Users/Pasusani/Desktop/logs/"
+ listOfFiles[i].getName().toString();
FileReader file = new FileReader(paths);
BufferedReader reader = new BufferedReader(file);
String text = "";
String line = reader.readLine();
while (line != null) {
text += line;
line = reader.readLine();
}
System.out.println(text);
JTextArea ta = new JTextArea();
ta.setVisible(true);
ta.setText(text);
} else if (listOfFiles[i].getName().equals("try.txt")) {
String paths = "C:/Users/Pasusani/Desktop/logs/"
+ listOfFiles[i].getName().toString();
FileReader file = new FileReader(paths);
BufferedReader reader = new BufferedReader(file);
String text = "";
String line = reader.readLine();
while (line != null) {
text += line;
line = reader.readLine();
}
System.out.println(text);
JTextArea ta = new JTextArea();
ta.setVisible(true);
ta.setText(text);
}
else {
JOptionPane.showMessageDialog(null, "hah");
}
// System.out.println(files);
} else {
JOptionPane.showMessageDialog(null, "wala lang");
}
}
}
}
}
答案 0 :(得分:0)
我认为您的程序可以在JTextArea中成功输出日志,对吗?
您需要根据日志文件的结构添加语句来处理从Bufferreader获取的文本。如果不了解您的日志文件,我们无法帮助您。
您可能需要使用String的contains(String str),substring(int beginIndex,int endIndex)和indexOf(String str)。一个简单的样本:
public static String testMethod(){
String a = "hello error";
if(a.contains("error"))
return a.substring(a.indexOf("error"), a.indexOf("error")+5);
else
return "not found";
}