Vikings

          InputStream , buffer概念

          try {
                                      String host 
          = new URL(link).getHost();
                                      String url 
          = "http://"+ host + "/favicon.ico";
                                      is 
          = new URL(url).openConnection().getInputStream();
                                      
          byte[] buffer = new byte[5000];
                                      bos 
          = new ByteArrayOutputStream();
                                      
          int bytesRead = 0;
                                      
          while ((bytesRead = is.read(buffer)) > 0{
                                          bos.write(buffer, 
          0, bytesRead);
                                      }

                                      bos.flush();
                                  }
          catch (IOException e){
                                      canDownloader 
          = false;
                                  }
          原來要從一個InputStream里面讀一個byte[],
          我是這么寫的:
          byte[] bytes = new byte[is.avlilabel]
          is.read[bytes];
          原來如果is過大的話,
          沒有buffer,有可能讀不完整。

              while ((bytesRead = is.read(buffer)) > 0{
                                          bos.write(buffer, 
          0, bytesRead);
                  }

          就沒這問題了。

          posted on 2006-02-17 19:25 Vikings 閱讀(884) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 牙克石市| 丘北县| 芦山县| 奉贤区| 上饶县| 阿克陶县| 开封县| 庆安县| 汨罗市| 彝良县| 福贡县| 拉孜县| 靖远县| 通化县| 和林格尔县| 湛江市| 博兴县| 襄城县| 东台市| 涞水县| 固安县| 昆明市| 安丘市| 邢台县| 疏附县| 巴东县| 靖江市| 云浮市| 沙田区| 镇康县| 客服| 赣州市| 凤山县| 清原| 东乌珠穆沁旗| 西宁市| 肃宁县| 威宁| 榆林市| 侯马市| 隆尧县|