java 从指定行读文件,执行系统命令

 

 1 import java.util.*;
 2 import java.io.*;
 3 
 4 public class Example {
 5     public static void main(String[] args){
 6         readFile("proxy.txt",0);
 7         readFile("proxy.txt",1);
 8         readFile("proxy.txt",4);
 9         execSystemCmd("notepad"); // windows cmd
10         execSystemCmd("ls /home/whucs");
11         execSystemCmd("tail -n /home/whucs/vote.py");
12         execSystemCmd("wc -l php-fpm.log"); // count lines of a file. 500MB ~ 2s
13     }
14     
15     public static void readFile(String path, int beginLine) {
16         FileInputStream inputStream = null;
17         Scanner sc = null;
18         try {
19             inputStream = new FileInputStream(path);
20             sc = new Scanner(inputStream, "UTF-8");
21             int begin = 0;
22             if (beginLine == 0) beginLine = 1;
23             while (sc.hasNextLine()) {
24                 begin ++;
25                 if (begin >= beginLine) {
26                     String line = sc.nextLine();
27                     // TODO...
28                     System.out.println(line);
29                 } else {
30                     sc.nextLine();
31                 }
32             }
33             if (begin < beginLine) {
34                 System.out.println("error! beginLine > file's total lines.");
35             }
36             inputStream.close();
37             sc.close();
38         } catch (IOException e) {
39             System.out.println("FileReader IOException!");
40             e.printStackTrace();
41         }
42     }
43     
44     public static void execSystemCmd(String cmd) {
45         String outPut = null;
46         System.out.println("cmd=" + cmd);
47         try 
48         {
49             Process p = Runtime.getRuntime().exec(cmd);
50             InputStream is = p.getInputStream();
51             BufferedReader br = new BufferedReader(new InputStreamReader(is));
52             StringBuilder buf = new StringBuilder();
53             String line = null;
54             while ((line = br.readLine()) != null)    buf.append(line + "\n");            
55             outPut = buf.toString();
56             System.out.printf("outPut = %s",outPut);
57         } 
58         catch (IOException e) 
59         {
60             e.printStackTrace();
61         }
62     }
63     
64 }

 

posted @ 2016-03-08 14:12  duanguyuan  阅读(959)  评论(0编辑  收藏  举报