天天看點

Android檢視網頁源碼

1 布局

在ScrollView控件裡嵌入一個TextView即可,其帶有一個滾動條.

2利用網頁的路徑和編碼方式,得到網頁的位元組數組

分析:

(1)關于網頁的編碼方式,可以利用HttpWatch工具來擷取

(2)利用URL得到HttpURLConnection connection這樣便于資源建立起了聯系,且設定connection的屬性值

(3)利用HttpURLConnection connection得到輸入流.即可以這麼想:此時的網頁已經儲存到了此輸入流inputStream裡

(4)将在輸入流裡的網頁資料輸出到位元組數組裡面.即byte [] imageData=GetResource.readResource(inputStream).如下

readResource(inputStream)方法如下:

(1)沒有方法可以把輸入流裡的資料直接放到位元組數組裡(查閱API即知),而是要利用ByteArrayOutputStream outputStream

   把在輸入流自己把自己的資料讀(read())到一個位元組數組裡面,即inputStream.read(buffer),然後數組裡面的資料放入

   輸出流ByteArrayOutputStream outputStream裡面,即outputStream.write(buffer,0,len);

(2)待資料全部轉移到輸入流outputStream裡面,此時就可以把輸出流的資料全部轉換為位元組數組,即outputStream.toByteArray();

(3)在此例子就很好展現了輸入流和輸出流的使用.

在輸入流相應的API中都是把輸入流讀取到一個數組中,或者隻讀取一個位元組,或者讀取一行

如FileInputStream類中的方法:

public int read(byte[] b,int off,int len)從此輸入流中将最多 len 個位元組的資料讀入一個位元組數組中

public int read()從此輸入流中讀取一個資料位元組

如在BufferedReader類中的方法:

public String readLine() 讀取一個文本行.傳回值:包含該行内容的字元串

在輸出流相應的API中都把是位元組數組寫入此輸出流,或者隻把數組中的某個位置的資料寫入輸出流

如ByteArrayOutputStream類的方法中:

public void write(byte[] b,int off,int len)将指定位元組數組中從偏移量off開始的len個位元組寫入此位元組數組輸出流

public void write(int b)将指定的位元組寫入此位元組數組輸出流

然後我們可以發現:

(1)可以把輸出流裡的資料轉換為位元組數組

public byte[] toByteArray():建立一個新配置設定的位元組數組。其大小是此輸出流的目前大小,并且緩沖區的有效内容已複制到該數組中。

(2)可以把輸出流裡的資料轉換為字元串

public String toString():将緩沖區的内容轉換為字元串,根據平台的預設字元編碼将位元組轉換成字元。

繼續閱讀