首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

解决process.waitFor()堵塞

2012-11-03 
解决process.waitFor()阻塞private static voidexeBat(){Process p null try {p Runtime.getRuntime(

解决process.waitFor()阻塞

private static void  exeBat(){Process p = null; try {   p = Runtime.getRuntime().exec("tts.bat");   //获取进程的标准输入流   final InputStream is1 = p.getInputStream();    //获取进城的错误流   final InputStream is2 = p.getErrorStream();   //启动两个线程,一个线程负责读标准输出流,另一个负责读标准错误流   new Thread() {      public void run() {         BufferedReader br1 = new BufferedReader(new InputStreamReader(is1));          try {              String line1 = null;              while ((line1 = br1.readLine()) != null) {                    if (line1 != null){}                }          } catch (IOException e) {               e.printStackTrace();          }          finally{               try {                 is1.close();               } catch (IOException e) {                  e.printStackTrace();              }            }          }       }.start();                                     new Thread() {         public void  run() {          BufferedReader br2 = new  BufferedReader(new  InputStreamReader(is2));             try {                String line2 = null ;                while ((line2 = br2.readLine()) !=  null ) {                     if (line2 != null){}               }              } catch (IOException e) {                    e.printStackTrace();             }             finally{               try {                   is2.close();               } catch (IOException e) {                   e.printStackTrace();               }             }          }         }.start();                                          p.waitFor();        p.destroy();        System.out.println("tts退出==========================================");      } catch (Exception e) {           try{            p.getErrorStream().close();            p.getInputStream().close();            p.getOutputStream().close();             }catch(Exception ee){}     }  }

热点排行