文件包含以下内容:
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 中怎么可能?
感谢任何帮助。
最佳答案
算法
- 打开文件。
- 在循环中读取一行文本。
- 如果文本行以
skypePM.exe
开头,则提取数字。 - 重复循环,直到从文件中读取所有行。
- 关闭文件。
实现
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/