程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java 過程履行內部法式形成壅塞的一種緣由

Java 過程履行內部法式形成壅塞的一種緣由

編輯:關於JAVA

Java 過程履行內部法式形成壅塞的一種緣由。本站提示廣大學習愛好者:(Java 過程履行內部法式形成壅塞的一種緣由)文章只能為提供參考,不一定能成為您想要的結果。以下是Java 過程履行內部法式形成壅塞的一種緣由正文


查了很多多少材料,差點就著手翻Java源碼了,最初聯合一篇文章(忘卻出處了),想到了輸入流會壅塞過程履行。 Java過程履行有一個輸出流,兩個輸入流(絕對於內部法式)。當兩個輸入流有內容輸入,而Java履行法式沒有實時清空輸入流時就會壅塞過程。
現貼出代碼,願望能贊助到有須要的同業:

/**
  * pdf轉swf函數
  * @param path 輸出輸入文件途徑
  * @param inputFileName 輸出文件名
  * @param outputFileName 輸入文件名
  * @return File 生成的swf文件
  */
 private static File toSwf(String sourceFile, String destFile, String command) {
  long beginTime = System.nanoTime();
  Runtime rt = Runtime.getRuntime();
  try {
   Process process = rt.exec(command);

   final InputStream isNormal = process.getInputStream();
   new Thread(new Runnable() {
       public void run() {
           BufferedReader br = new BufferedReader(new InputStreamReader(isNormal));
           StringBuilder buf = new StringBuilder();
     String line = null;
     try {
      while((line = br.readLine()) != null){
       buf.append(line + "\n");
      }
     } catch (IOException e) {
      e.printStackTrace();
     }
     System.out.println("輸入成果為:" + buf);
       }
   }).start(); // 啟動零丁的線程來清空process.getInputStream()的緩沖區

   InputStream isError = process.getErrorStream();
   BufferedReader br2 = new BufferedReader(new InputStreamReader(isError));
   StringBuilder buf = new StringBuilder();
   String line = null;
   while((line = br2.readLine()) != null){
    buf.append(line + "\n");
   }
   System.out.println("毛病輸入成果為:" + buf);

   try {
    process.waitFor();
   } catch (InterruptedException e) {
    e.printStackTrace();
   }

  } catch (IOException e) {
   e.printStackTrace();
  }
  long endTime = System.nanoTime();
  System.out.println("轉swf耗時: " + (endTime - beginTime) / 1000000000 + " 秒  " + sourceFile);
  return new File(destFile);
 }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved