簡體   English   中英

如何從Java中的txt文件獲取特定行

[英]How to get specific line from a txt file in java

我正在將PC上正在運行的所有進程的信息轉儲到.txt文件中。 為此,我從我的Java應用程序執行handle.exe。 該文件包含此格式的所有正在運行的進程:

RuntimeBroker.exe pid: 4756 
4: Key           HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image 
8: Event  
   10: WaitCompletionPacket 
   1C: IRTimer       
   20: WaitCompletionPacket 
   24: IRTimer       
   28: File          \Device\CNG

--

SearchIndexer.exe pid: 5616 
4: Event         
8: WaitCompletionPacket 
C: IoCompletion  
1C: IRTimer
20: File          \Device\0000007s
22: Directory   

我需要獲取正在使用給定設備的進程的名稱,即,如果我遍歷文件搜索字符串“ \\ Device \\ 0000007s”,則需要獲取進程的名稱和進程ID,即上面幾行。 有人知道我該怎么做嗎? 進程由短划線分隔-在文件中。 請記住,文件很大,這只是一個例子。

我會將進程的每一行(使用Scanner )讀入List<String> 然后在List<String>搜索所需的String ,如果存在,則進行處理。 這是一些偽代碼:

Scanner scanner = new Scanner("path/to/file.txt");
List<String> stringList;
while(scanner.hasNextLine()) {
  String nextLine = scanner.nextLine();

  if(nextLine.equals("--") {
    for(String line : stringList) {
      if(line.contains("\Device\0000007s") {
        // Do your processsing here
      }
    }

    stringList.clear();
  }

  else {
    stringList.add(nextLine);
  }

}

這只是偽代碼,不處理最后一個過程的邊緣情況,可能無法編譯。 我將讓您掌握具體的語法。

這樣做可能是更理想的方式,而且循環更少。 但是對於像這樣的簡單事情,我更喜歡采用清晰的方法來進行優化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM