飄落的櫻花
2007-04-09 15:41:28 UTC
最近在寫下載圖片的程式
然後發現圖片檔案一大讀的檔案會不完全
只有小圖片可以完全
下面是我的程式碼
byte[] b=new byte[1024];
int by=0;
url=new URL(file[i]);
dis=new DataInputStream(url.openStream());
while(true)
{
by=dis.read(b);
System.out.println(by);
if(by<0){break;}
dos.write(b);
}
我用一個by來記錄我每次讀取的byte數
發現每讀取兩三次就會有一次讀取不完全的情況
如果檔案小
就會列出
1024
xxx
-1
這樣是不會出問題
檔案大一點
就會列出
1204
1024
xxx
1204
xxx
就會像上面一樣有某次沒讀滿的情況
只要發生沒讀滿的情況,檔案就會整個錯誤無法開啟
請問我的程式碼有哪裡需要修改
我一直想不出來問題出在哪裡OTL
請高手幫忙
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.225.96.32
※ 編輯: del680202 來自: 125.225.96.32 (04/09 23:41)
然後發現圖片檔案一大讀的檔案會不完全
只有小圖片可以完全
下面是我的程式碼
byte[] b=new byte[1024];
int by=0;
url=new URL(file[i]);
dis=new DataInputStream(url.openStream());
while(true)
{
by=dis.read(b);
System.out.println(by);
if(by<0){break;}
dos.write(b);
}
我用一個by來記錄我每次讀取的byte數
發現每讀取兩三次就會有一次讀取不完全的情況
如果檔案小
就會列出
1024
xxx
-1
這樣是不會出問題
檔案大一點
就會列出
1204
1024
xxx
1204
xxx
就會像上面一樣有某次沒讀滿的情況
只要發生沒讀滿的情況,檔案就會整個錯誤無法開啟
請問我的程式碼有哪裡需要修改
我一直想不出來問題出在哪裡OTL
請高手幫忙
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.225.96.32
※ 編輯: del680202 來自: 125.225.96.32 (04/09 23:41)