• 使用URL读取网络资源


    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.URL;

    import android.os.Bundle;
    import android.app.Activity;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.view.Menu;
    import android.widget.ImageView;

    public class URLTest extends Activity {
      ImageView show;

      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_urltest);
        show = (ImageView) findViewById(R.id.show);
        //定义一个URL对象
        try {
          URL url = new URL("http://www.crazyit.org/attachments" +
              "month_1008/20100812_7763e970f822325bf019ELVym8tW3A.png");
          //打开该URL对应的资源的输入流
          InputStream is = url.openStream();
          //从InputStream中解析出图片
          Bitmap bitmap = BitmapFactory.decodeStream(is);
          //使用ImageView显示该图片
          show.setImageBitmap(bitmap);
          is.close();
          //再次打开URL对应的资源的输入流
          is = url.openStream();
          //打开手机文件对应的输出流
          OutputStream os = openFileOutput("crazyit.png", MODE_WORLD_READABLE);
          byte[] buff = new byte[1024];
          int hasRead = 0;
          //将URL对应的资源下载到本地
          while((hasRead = is.read(buff)) > 0){
            os.write(buff, 0, hasRead);
          }
          is.close();
          os.close();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }

    }

    上面的程序两次调用了URL对象的openStream()方法打开URL对应的资源的输入流,程序第一次使用BitmapFactory的decodeStream(InputStream)方法来解析该输入流中的图片;第二次则使用IO将输入流中的图片下载到本地。

    该程序同样需要访问互联网,因此需要授予该程序访问网络的权限,也就是需要在AndroidManifest.xml文件中增加如下授权代码。

    <!-- 授权访问网络 -->
    <uses-permission android:name="android.permission.INTERNET"/>

    运行该程序不仅可以显示该URL对象所对应的图片,而且还会在手机文件系统的/data/data/org.crazyit.net/files/目录下生成crazyit.png图片,该图片就是通过URL从网络上下载的图片。

  • 相关阅读:
    Oct 21st-
    ContextLoaderListener 解析
    HTTPS 证书制作及使用
    Spring MVC 源码分析
    思考
    《深入理解java虚拟机》 第七章虚拟机类加载机制
    《深入理解java虚拟机》第六章 类文件结构
    《深入理解java虚拟机》第三章 垃圾收集器与内存分配策略
    《深入理解java虚拟机》第二章 Java内存区域与内存溢出异常
    SSM-1第一章 认识SSM框架和Redis
  • 原文地址:https://www.cnblogs.com/jiww/p/5634073.html
Copyright © 2020-2023  润新知