保存网络图片在sdcard两个方法

简介: 保存网络图片在sdcard两个方法

法一

 

Button but = (Button) findViewById(R.id.button1);
        but.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread() {
                    public void run() {
                        try {
                            writeFileData(
                                    "http://cmsimg02.qiniudn.com/contentimg/2014/06/24/20/02c9fe2c0dee6ad4a9d4761e70101452d7.jpg",
                                    "aaa.png");
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    };
                }.start();
            }
        });
    }
    public void writeFileData(String httpUrl, String fileName) {
        File file2 = new File(Environment.getExternalStorageDirectory()
                .getAbsolutePath() + "/yohoboy007/" + fileName);
        file2.getParentFile().mkdirs();
        HttpClient client = new DefaultHttpClient();
        HttpGet get = new HttpGet(httpUrl);
        InputStream inputStream = null;
        FileOutputStream fileOutputStream = null;
        try {
            HttpResponse httpResponse = client.execute(get);
            if (httpResponse.getStatusLine().getStatusCode() == 200) {
                inputStream = httpResponse.getEntity().getContent();
                fileOutputStream = new FileOutputStream(file2);
                byte[] buf = new byte[1024 * 5];
                int lengs;
                while ((lengs = inputStream.read(buf)) != -1) {
                    fileOutputStream.write(buf, 0, lengs);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (inputStream != null && fileOutputStream != null) {
                try {
                    inputStream.close();
                    fileOutputStream.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

法二

public void method5(final String url) {
        // String url =
        // "http://cmsimg02.qiniudn.com/contentimg/2014/06/24/20/02c9fe2c0dee6ad4a9d4761e70101452d7.jpg";
        YhHttpUtils.get(url, new BinaryHttpResponseHandler() {
            @Override
            public void onSuccess(byte[] arg0) {
                super.onSuccess(arg0);
                File file = Environment.getExternalStorageDirectory();
                File file2 = new File(file, "yohoboy");
                File file3 = new File(file2, "pic");
                file3.mkdir();
                file3 = new File(file3, getPicName(url));
                try {
                    FileOutputStream oStream = new FileOutputStream(file3);
                    oStream.write(arg0);
                    oStream.flush();
                    oStream.close();
                    // textView.setText("可爱的猫咪已经保存在sdcard里面");
                } catch (Exception e) {
                    e.printStackTrace();
                    Log.i("hck", e.toString());
                }
            }
        });
    }
    public String getPicName(String url) {
        return url.substring(url.lastIndexOf('/') + 1, url.length());
    }
目录
相关文章
|
1月前
|
运维 安全 网络架构
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
【6月更文挑战第1天】成为网络世界的超级英雄,利用网络模拟工具解决复杂架构难题!此工具提供安全的虚拟环境,允许自由设计和测试网络拓扑,进行性能挑战和压力测试。简单示例代码展示了创建网络拓扑的便捷性,它是网络设计和故障排查的“魔法棒”。无论新手还是专家,都能借助它探索网络的无限可能,开启精彩冒险!快行动起来,你会发现网络世界前所未有的乐趣!
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
|
25天前
|
数据可视化 算法 JavaScript
使用Python进行网络数据可视化的多种方法与技巧
在当今信息爆炸的时代,网络数据量呈指数级增长,了解和分析这些数据对于许多领域的决策制定至关重要。可视化是理解和解释大量数据的强大工具之一,而Python作为一种流行的编程语言,提供了丰富的库和工具来进行网络数据可视化。本文将介绍一些使用Python进行网络数据可视化的方法与技巧,并提供相应的代码实例。
|
5天前
|
算法 Java 数据库连接
Java中优化网络通信的方法和工具
Java中优化网络通信的方法和工具
|
1月前
|
机器学习/深度学习 安全 网络安全
【计算巢】数字取证:追踪和分析网络犯罪的方法
【6月更文挑战第4天】本文探讨了数字取证在网络安全中的关键作用,通过Python编程展示如何分析网络日志以发现线索。数字取证利用科学方法收集、分析电子数据,以应对黑客入侵、数据泄露等网络犯罪。文中提供的Python代码示例演示了从服务器日志中提取IP地址并统计访问次数,以识别异常行为。此外,实际的数字取证还包括数据恢复、恶意软件分析等复杂技术,并需遵循法律程序和伦理标准。随着技术发展,数字取证将更有效地保障网络空间的和平与秩序。
|
16天前
|
机器学习/深度学习 算法 搜索推荐
神经网络中的优化方法
摘要: 这篇内容介绍了梯度下降优化算法在机器学习中的挑战,如平缓区域、鞍点和局部最小值,以及如何通过改进策略来克服这些问题。文章提到了几种优化方法,包括Momentum、AdaGrad、RMSprop和Adam。Momentum通过累积历史梯度信息来调整参数更新,帮助模型在训练过程中更快地收敛。AdaGrad和RMSprop解决了AdaGrad学习率过早衰减的问题,RMSprop结合了Momentum和AdaGrad的优势,通过一阶矩估计和二阶矩估计动态调整学习率,尤其适用于大规模数据集和复杂模型。Adam是RMSprop的一个变种,是深度学习中最常用的优化器之一。
|
1月前
计算机网络——物理层-编码与调制(数字基带信号、模拟基带信号、码元、常用编码、基本调制方法、混合调制)二
计算机网络——物理层-编码与调制(数字基带信号、模拟基带信号、码元、常用编码、基本调制方法、混合调制)二
24 0
|
1月前
|
内存技术
计算机网络——物理层-编码与调制(数字基带信号、模拟基带信号、码元、常用编码、基本调制方法、混合调制)一
计算机网络——物理层-编码与调制(数字基带信号、模拟基带信号、码元、常用编码、基本调制方法、混合调制)一
36 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
|
2月前
|
数据采集 存储 数据安全/隐私保护
拓展网络技能:利用lua-http库下载www.linkedin.com信息的方法
本文介绍如何使用Lua和lua-http库抓取LinkedIn信息,强调了Lua在爬虫开发中的应用。通过配置亿牛云爬虫代理解决IP封锁问题,实现步骤包括安装库、配置代理、发送HTTP请求、解析响应及提取信息。提供的Lua代码示例展示了下载和存储LinkedIn信息的过程。实验成功展示了Lua爬虫的可行性,但也指出需考虑反爬虫策略以应对实际挑战。
拓展网络技能:利用lua-http库下载www.linkedin.com信息的方法
|
2月前
|
网络协议
LabVIEW 通过网络同步多台计算机系统时间的方法与例程
LabVIEW 通过网络同步多台计算机系统时间的方法与例程
30 1