Android—網路互動之用戶端請求服務端資源後續

來源:互聯網
上載者:User

昨天嘗試通過網路連接將伺服器資源下載到客服端,然而也發現一些問題,比如能夠成功的將mp3、txt、png下載下來,但是將壓縮檔(rar)下下來之後卻不能解壓出來。當初以為是對於android平台所不支援的檔案格式就會出現這樣的情況,但是同樣的gif格式的圖片,android同樣無法開啟,但是下下來之後卻能夠成功的開啟。暫時也未能找到相關的資料說明,還望那個大牛能解釋解釋。

在尋找相關android網路連接資料的時候,發現有很多樣本:有的是以檔案方式儲存,有的是直接將檔案內容讀取出來顯示。對於沒熟悉的,確實感覺很困難,容易混淆都不知道看哪一個比較好。當我理清基本的概念後,我也嘗試著將一些文字檔直接解析顯示(txt、xml)

上一篇講到了從網路資料流到具體檔案的紐帶(FileOutputStream),而我們將檔案與String對比,就會使用到另外一個對象BufferedReader(從字元輸入資料流中讀取文本,緩衝各個字元,從而實現字元、數組和行的高效讀取).

代碼

InputStream is=connect.getInputStream();
InputStreamReader isr=new InputStreamReader(is, "gbk");
BufferedReader br=new BufferedReader(isr);       //可變字串
StringBuffer sb=new StringBuffer();
//儲存一行資料(br.readLine每次讀寫一行)
String readLine=null;
while((readLine=br.readLine())!=null){
Log.v("tag", "------------------"+sb.toString());
sb.append(readLine).append("\n");
}
br.close();
is.close();
connect.disconnect();
showText=new String(sb.toString().getBytes("gbk"), "gbk");

這裡有一個要注意的問題就是就是編碼問題,這也就是為什麼在android中漢字出現亂碼問題的原因,我是這樣理解的:因為window和linux(或java虛擬機器)所使用的漢字編碼是不同的,當你從windows下用gbk編碼的漢字到別的平台(另外一種預設的漢字編碼方式),就會出現亂碼,所以 從編碼到解析必須統一。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.