Andriod从网络上读入文件

class TxtDownLoadOnClickListener implements View.OnClickListener{
        @Override
        public void onClick(View view) {
            //TxtDown txtDown = new TxtDown();
            //String string = txtDown.downLoad("http://dampce032.iteye.com/blog/975642");
            //System.out.println(string);
            new Thread(){
                @Override
                public void run() {
                    TxtDown txtDown = new TxtDown();
                    String string = txtDown.downLoad("http://dampce032.iteye.com/blog/975642");
                    System.out.println(string);
                    super.run();
                }
            }.start();
        }
    }

     看的是Mars老师的Andriod教程, 因为教程比较早, 在文件下载的时候 出现 NullPointerException异常, 崩掉程序。在Andriod4.0以后, 对网络的访问不能写在主线程中了。 可以在监听器中设置线程。


网络的读写要用到IO流,下面代码可以实现对string类型的读入。在Mars老师讲解时,网站用Tomcat模拟,我没弄这个,但是也没有找到TXT文件的网站,所以就直接找的随机一个网站读入, 能成功读入。听别人说用PHPStudy也能实现这个功能。

public class TxtDown {
    private URL url = null;

    //urlString是下载地址
    public String downLoad(String urlString){
        StringBuffer stringBuffer = new StringBuffer();
        BufferedReader bufferedReader = null;
        String line = null;

        try {
            //初始化URL对象
            url = new URL(urlString);
            // 创建http连接
            HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
            //用IO流读取数据
            bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
            while ((line = bufferedReader.readLine()) != null){
                stringBuffer.append(line);
            }
            bufferedReader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return stringBuffer.toString();
    }
}



另外又写了一个读入网络图片的程序, 和上面的基本上差不多,如果可能的话我再试试能不能封装成一个方法。


class JPGOnClickListener implements View.OnClickListener{
        @Override
        public void onClick(View view) {
            //DownJPG downJPG = new DownJPG();
            //downJPG.GetJPG("http://f.hiphotos.baidu.com/image/w%3D2048/sign=3b06d28fc91349547e1eef6462769358/d000baa1cd11728b22c9e62ccafcc3cec2fd2cd3.jpg");
            //System.out.println("OnClick");
            new Thread(){
                @Override
                public void run() {
                    DownJPG downJPG = new DownJPG();
                    downJPG.GetJPG("http://f.hiphotos.baidu.com/image/w%3D2048/sign=3b06d28fc91349547e1eef6462769358/d000baa1cd11728b22c9e62ccafcc3cec2fd2cd3.jpg");
                    System.out.println("OnClick");
                    super.run();
                }
            }.start();
        }
    }


public class DownJPG {

    protected URL url = null;
    Bitmap bitmap = null;

    public Bitmap GetJPG(String urlJPG){
        try {
            url = new URL(urlJPG);
            //使用HttpURLConnect建立连接
            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
            httpURLConnection.setDoInput(true);//??以后就可以使用conn.getInputStream().read()
            httpURLConnection.connect();
            //get数据
            InputStream inputStream = httpURLConnection.getInputStream();
            bitmap = BitmapFactory.decodeStream(inputStream);
            inputStream.close();
            System.out.println("DownLoad");
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            System.out.println("[getNetWorkBitmap->]MalformedURLException");
            e.printStackTrace();
        } catch (Exception e) {
            System.out.println("[getNetWorkBitmap->]IOException");
            e.printStackTrace();
        }
        return bitmap;
    }
}


在AndriodManifest.xml文件里面要加入访问网络的权限

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







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值