我不知道是否可能,但我的要求是 - 我必须在我的java程序中读取名为 System.evtx 的文件中的数据。
虽然我这样做就像简单的文件读取一样,但我得到一些ASCII字符,或者我可以说不可读的格式。
有没有办法解决这个问题。
提前致谢。
答案 0 :(得分:1)
如果没有文件内容的示例,这是一个难以回答的问题,但在谷歌搜索后,它似乎是一个Windows事件日志文件?所以我不确定确切的格式,但显然可以使用powershell将它们转换为.csv文件:
Get-WinEvent -Path c:\path\to\eventlog.evtx |Export-Csv eventlog.csv
一旦它采用csv格式,你可以用csv的传统方式简单地解析它们,或者只用逗号分隔等。
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class CSVReader {
public static void main(String[] args) {
String csvFile = "eventlog.csv";
BufferedReader br = null;
String line = "";
String cvsSplitBy = ",";
try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
// use comma as separator
String[] line = line.split(cvsSplitBy);
for(int i=0;i<line.length;i++){
System.out.println(line[i]);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}