java - 解析任务列表

标签 java file parsing

文件包含以下内容:

HPWAMain.exe                  3876 Console                    1      8,112 K

hpqwmiex.exe                  3900 Services                   0      6,256 K

WmiPrvSE.exe                  3924 Services                   0      8,576 K

jusched.exe                   3960 Console                    1      5,128 K

DivXUpdate.exe                3044 Console                    1     16,160 K

WiFiMsg.exe                   3984 Console                    1      6,404 K

HpqToaster.exe                2236 Console                    1      7,188 K

wmpnscfg.exe                  3784 Console                    1      6,536 K

wmpnetwk.exe                  3732 Services                   0     11,196 K

skypePM.exe                   2040 Console                    1     25,960 K

我想获取skypePM.exe的进程ID。这在 Java 中怎么可能?

感谢任何帮助。

最佳答案

算法

  1. 打开文件。
  2. 在循环中读取一行文本。
  3. 如果文本行以 skypePM.exe 开头,则提取数字。
  4. 重复循环,直到从文件中读取所有行。
  5. 关闭文件。

实现

import java.io.*;

public class T {
  public static void main( String args[] ) throws Exception {
    BufferedReader br = new BufferedReader(
      new InputStreamReader(
      new FileInputStream( "tasklist.txt" ) ) );

    String line;

    while( (line = br.readLine()) != null ) {
      if( line.startsWith( "skypePM.exe" ) ) {
        line = line.substring( "skypePM.exe".length() );
        int taskId = Integer.parseInt( (line.trim().split( " " ))[0] );

        System.out.println( "Task Id: " + taskId );
      }
    }

    br.close();
  }
}

替代实现

如果您安装了 Cygwin 和相关工具,您可以使用:

cat tasklist.txt | grep skypePM.exe | awk '{ print $2; }'

关于java - 解析任务列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3138244/

相关文章:

c - 读入数组直到文件末尾

Regexp::Grammars 在调试时成功,在没有调试时失败

regex - Powershell 正则表达式匹配域\用户名

java - 注册后定向到登录 Activity 而不是主要 Activity ?

java - 如果其中一个边界是一个类,则必须首先在 java 泛型中指定它。为什么?

java - 如何使用具有预定义 "src"描述符的 Maven 程序集插件制作单个 zip 存档?

python - 在 Windows 上以非侵入方式解锁文件

java - 从 getContent 将文件保存在 java 中,包括新行

json - 获取 JSON 文件中的最后一个元素

java - 使用三元运算符的 java 语法无效