android檔案下載大小和網路不一致(偏大)

來源:互聯網
上載者:User

今天在寫一個檔案下載的程式,在網上搜尋了一個抄,用來下載MP3檔案。 但是發現下載的MP3檔案比原來的檔案要大,而且MP3中會有雜音。 在Log中加入日誌後發現: 從  網路流中擷取的流長度為3000000左右 但是從 SD卡上獲得的檔案長度為 4000000左右 最後發現是下載時用的方法問題: 只要改正一個函數即可:  原來的檔案下載主代碼:  

OutputStream output=new FileOutputStream(file);                     byte[] buffer=new byte[1024*4];                     while (istream.read(buffer)!=-1) {                         output.write(buffer);                     }                     output.flush();                     output.close();                     istream.close();  

 

改正後的主代碼: 
OutputStream OS = new FileOutputStream(file);              byte[] buffer = new byte[1024 * 4];              int len=-1;              while ((len=is.read(buffer)) != -1) {                  OS.write(buffer,0,len);  //在這裡使用另一個重載,防止流寫入的問題.              }              OS.flush();              OS.close();              is.close();  

 

 以上就是今天寫代碼時遇到的問題,和改正的方

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.