Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用正则表达式读取和转换Java文件_Java - Fatal编程技术网

使用正则表达式读取和转换Java文件

使用正则表达式读取和转换Java文件,java,Java,嗨,我有一个文本文件,包含以下内容 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 23876 root 20 0 9436 1764 760 R 4 0.0 0:00.08 top 50741 hcsadm 20 0 18.0g 2.3g 751m S 4 0.4 1310:10 hdbnameser

嗨,我有一个文本文件,包含以下内容

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
23876 root      20   0  9436 1764  760 R    4  0.0   0:00.08 top                
50741 hcsadm    20   0 18.0g 2.3g 751m S    4  0.4   1310:10 hdbnameserver      
51089 hcsadm    20   0 55.0g  48g  23g S    4  9.5   4713:14 hdbindexserver     
15618 gdm       20   0  273m  65m  11m S    2  0.0 162:17.68 gdm-simple-gree    
15938 cisadm    20   0  687m 281m 267m S    2  0.1 306:55.97 hdb.sapCIS_HDB0    
17645 hbsadm    20   0 18.1g 7.7g 598m S    2  1.5 974:48.98 hdbnameserver      
17795 hbsadm    20   0  109g 104g  39g S    2 20.8  14496:26 hdbindexserver 
我的java代码读取文件如下所示

 Scanner sc = new Scanner(new File("top.txt"));
 while(sc.hasNext()){
  String line = sc.nextLine();       
 }
现在,任何人都知道如何将文件数据转换为以下格式

array=[{PID:23876,USER:root,COMMAND:top},{PID:50741,USER:hcsadm,COMMAND:hdbnameserver},..........]
我是如何在java中使用正则表达式的,所以我将我的文件信息转换为上述格式,或者java中有任何其他选项来生成上述数组

只需拆分每一行

String[] fields = line.split("\\s+"); // split based on whitespace characters
String PID = fields[0];
String USER = fields[1];
String COMMAND= fields[11];
尝试:


是否需要表示文件内容的JSON字符串?或者,您建议的输出是Java数据结构的概念表示吗?因为数组在Java中看起来不像。@TedHopp Hi,实际上我想要json字符串,所以我在mongo中插入了该json字符串。使用发布的解决方案之一解析每一行(当然跳过第一行),并使用json库构建适当的json结构。如果您有J2EE7,那么可以使用中的类。或者,您可以使用第三方软件包,如轻量级或流行库。许多其他Java库在中列出。
while(sc.hasNext()){
  String line = sc.nextLine();       
  String[] values = line.split("\\s+");
  String PID = "PID":+values[0];
  String USER = "USER:"+values[1];
  String COMMAND = "COMMAND:"+values[11];
  //now do whatever you want with it, for example
  String [] res = {PID, USER, COMMAND};
 }