2010-05-02 66 views
0

我想下載一個XML文件使用流和事情都很好,直到xml大小變得比9 MB大,所以我有這個錯誤 java.io.IOException:過早的EOFjava.io.IOException:早熟EOF

這是代碼

BufferedInputStream bfi = null; 
     try { 
      bfi = new BufferedInputStream(new URL("The URL").openStream()); 
      String name = "name.xml"; 
      FileOutputStream fb = new FileOutputStream(name); 
      BufferedOutputStream bout = new BufferedOutputStream(fb, 1024); 
      byte[] data = new byte[1024]; 
      int x = 0; 
      while ((x = bfi.read(data, 0, 1024)) >= 0) { 
       bout.write(data, 0, x); 
      } 
      this.deletePhishTankDatabase(this.recreateFileName()); 
      ptda.insertDownloadTime(hour, day, month, year); 
      bout.close(); 
      bfi.close(); 
     } catch (IOException ex) { 
      Logger.getLogger(PhishTankDataBase.class.getName()).log(Level.SEVERE, null, ex); 
     } finally { 
      try { 
       bfi.close(); 
      } catch (IOException ex) { 
       Logger.getLogger(PhishTankDataBase.class.getName()).log(Level.SEVERE, null, ex); 
      } 
     } 
    } else { 
     System.out.println("You can't do anything"); 
     return; 
    } 
+1

哪條線指向異常的原因?你不應該忽略這樣的有用信息! – polygenelubricants 2010-05-02 16:50:05

+0

@polygenelubricants:你在開玩笑吧?讓我們猜測是最好的部分! – 2010-05-02 16:51:57

+0

您是否看過您的數據並查看它是否有任何無效字符?你可能想要簡化你的代碼並去掉任何與流無關的東西。嘗試將您的輸入回顯到輸出文件並查看您獲得的內容。 – 2010-05-02 16:53:41

回答

0

的問題可能是您的應用程序運行速度比它檢索輸入數據

+1

編號讀取塊,除非有EOF。 – extraneon 2010-05-02 17:01:50

+0

讀取塊直到數據或EOS到達。 – EJP 2010-05-03 00:26:09

1

嘗試使用分塊流模式。

相關問題