使用 URL 读取网络资源
生活随笔
收集整理的這篇文章主要介紹了
使用 URL 读取网络资源
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
URL (Uniform Resource Locator ) 代表同一資源定位符,它是指向互聯(lián)網(wǎng)”資源”的指針.資源可以是簡單的文件或目錄.也可以是對更復(fù)雜的對象的引用.例如對數(shù)據(jù)庫或搜索引擎的查詢.通常情況而言..url 可以由協(xié)議名,主機(jī),端口和資源組成.既滿足如下格式: protocol://host:port/resourceName 例如如下的 Url地址https://www.baidu.com/
URL 提供了過個(gè)構(gòu)造器創(chuàng)建url對象,可以調(diào)用如下常見方法來訪問url對應(yīng)的資源.
URL提供的openStream() 可以讀取該URL資源的 InputStream, 該方法可以非常方便的讀取遠(yuǎn)程資源.
package com.net.httpurl;import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.MalformedURLException; import java.net.URL;/*** 使用 Url讀取網(wǎng)絡(luò)資源*/ public class UrlTestActivity extends AppCompatActivity {ImageView show;Bitmap mBitmap; //代表從網(wǎng)絡(luò)下載得到的圖片EditText path;Button btn;Handler mHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {if (msg.what == 0x123) {show.setImageBitmap(mBitmap);}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_url_test);show = (ImageView) findViewById(R.id.iv_show);path = (EditText) findViewById(R.id.et_path);btn = (Button) findViewById(R.id.btn);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {new Thread() {@Overridepublic void run() {super.run();String path_url = path.getText().toString().trim();//String path_url = "https://www.baidu.com/img/bd_logo1.png";//定義一個(gè)url 對象try {URL url = new URL(path_url);//打開該 url 對應(yīng)的輸入流InputStream is = url.openStream();//從 InputStream 中解析圖片mBitmap = BitmapFactory.decodeStream(is);//發(fā)送消息 通知ui 組件顯示該圖片mHandler.sendEmptyMessage(0x123);is.close();//-------------------------/*** 兩次使用了 url.openStream()方法;* 第一次使用了 BitmapFactory.decodeStream(is);方法來解析該輸入流中圖片* 第2次 是使用IO 將輸入流中的圖片下載到本地**/ ///-----------------------------------------------------------------//再次 打開該 url 對應(yīng)的輸入流is = url.openStream();//打開手機(jī)文件對應(yīng)的輸出流OutputStream os = openFileOutput("aaaa.png",MODE_PRIVATE);byte[] buff = new byte[1024];int len = 0;//url對應(yīng)的資源下載到本地while ((len=is.read(buff))>0){os.write(buff,0,len);}is.close();os.close();} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}.start();}});} }運(yùn)行改程序不僅會(huì)顯示該url對象所對應(yīng)的圖片,而且還會(huì)在手機(jī)文件系統(tǒng)的 /data/data/packageName/files/目錄下生成的”xxxx.png”圖片,該圖片就是通過 url從網(wǎng)絡(luò)上下載的圖片.
總結(jié)
以上是生活随笔為你收集整理的使用 URL 读取网络资源的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 4.0 下载_poi.jar包
- 下一篇: 文件打不开只读或服务器未响应,Recov