看板 java 關於我們 聯絡資訊
下面這段函式用來抓取網頁的圖片, 剛開始測試一兩張抓取沒問題, 但是之後會出現EOFException的錯誤。 上網查詢聽說和Buffer設定有關, 不知道哪位高手可以解決? public static void downloadPic(String picUrl) { try { URL url = new URL(picUrl); URLConnection uc = url.openConnection(); DataInputStream dis = new DataInputStream(uc.getInputStream()); FileOutputStream fo = new FileOutputStream("D:\\test.jpg"); while (dis.available() != -1) // throws EOFException at ending stream. { fo.write(dis.readByte()); fo.flush(); } dis.close(); fo.close(); System.out.println("complete."); } catch (Exception e) { System.out.print(e);// handle here } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.157.8
LaPass:串流讀到EOF(檔案結尾)時就會這樣,有時候是串流忘記關等等 11/27 22:11
superlubu:available() 永遠不會return -1 你讀 stream 的方法錯了 11/28 05:38
popcorny:而且一次讀一個byte也太沒效率了吧,可以一次多讀一些 11/28 09:20