如何通过java程序读取.evtx扩展名文件

如何通过java程序读取.evtx扩展名文件,java,Java,我不知道这是否可能,但我的要求是——我必须从java程序中名为System.evtx的文件中读取数据 当我像读简单的文件一样读的时候,我得到了一些ASCII字符,或者我可以说是不可读的格式 有没有办法解决这个问题 提前感谢。如果没有文件内容的示例,这是一个很难回答的问题,但在谷歌搜索之后,它似乎是一个windows事件日志文件?因此,我不确定确切的格式,但显然可以使用powershell将其转换为.csv文件: Get-WinEvent -Path c:\path\to\eventlog.evt

我不知道这是否可能,但我的要求是——我必须从java程序中名为System.evtx的文件中读取数据

当我像读简单的文件一样读的时候,我得到了一些ASCII字符,或者我可以说是不可读的格式

有没有办法解决这个问题


提前感谢。

如果没有文件内容的示例,这是一个很难回答的问题,但在谷歌搜索之后,它似乎是一个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();
                }
            }
        }

    }

}
导入java.io.BufferedReader;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.io.IOException;
公共类CSVReader{
公共静态void main(字符串[]args){
字符串csvFile=“eventlog.csv”;
BufferedReader br=null;
字符串行=”;
字符串cvsSplitBy=“,”;
试一试{
br=新的BufferedReader(新的文件读取器(csvFile));
而((line=br.readLine())!=null){
//使用逗号作为分隔符
String[]line=line.split(cvsSplitBy);
对于(int i=0;i