2016-07-21 75 views
1

我不知道它是否可能,但我的要求是 - 我必須從我的java程序中的文件System.evtx讀取數據。如何通過Java程序讀取.evtx擴展文件

雖然我這樣做就像簡單的文件閱讀我得到一些ASCII字符或我可以說不可讀的格式。

有什麼辦法解決這個問題。

在此先感謝。

回答

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(); 
       } 
      } 
     } 

    } 

}