保存网络图片在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());
    }
目录
打赏
0
0
0
0
3
分享
相关文章
|
2月前
计算网络号的直接方法
子网掩码用于区分IP地址中的网络部分和主机部分,连续的“1”表示网络位,“0”表示主机位。例如,255.255.255.0 的二进制为 11111111.11111111.11111111.00000000,前24位是网络部分。通过子网掩码可提取网络号,如 IP 192.168.1.10 与子网掩码 255.255.255.0 的网络号为 192.168.1.0。此外,文档还介绍了十进制与二进制间的转换方法,帮助理解IP地址的组成与计算。
100 11
深入解析PDCERF:网络安全应急响应的六阶段方法
PDCERF是网络安全应急响应的六阶段方法,涵盖准备、检测、抑制、根除、恢复和跟进。本文详细解析各阶段目标与操作步骤,并附图例,助读者理解与应用,提升组织应对安全事件的能力。
863 89
5个减少网络延迟的简单方法
高速互联网对工作与娱乐至关重要,延迟和断线会严重影响效率和体验。本文探讨了导致连接缓慢的三个关键因素:吞吐量、带宽和延迟,并提供了减少延迟的实用方法。包括重启设备、关闭占用带宽的程序、使用有线连接、优化数据中心位置以及添加内容分发网络 (CDN) 等策略。虽然完全消除延迟不可能,但通过这些方法可显著改善网络性能。
870 7
基于神经网络逆同步控制方法的两变频调速电机控制系统matlab仿真
本课题针对两电机变频调速系统,提出基于神经网络a阶逆系统的控制方法。通过构造原系统的逆模型,结合线性闭环调节器实现张力与速度的精确解耦控制,并在MATLAB2022a中完成仿真。该方法利用神经网络克服非线性系统的不确定性,适用于参数变化和负载扰动场景,提升同步控制精度与系统稳定性。核心内容涵盖系统原理、数学建模及神经网络逆同步控制策略,为工业自动化提供了一种高效解决方案。
【Azure K8S | AKS】在AKS的节点中抓取目标POD的网络包方法分享
在AKS中遇到复杂网络问题时,可通过以下步骤进入特定POD抓取网络包进行分析:1. 使用`kubectl get pods`确认Pod所在Node;2. 通过`kubectl node-shell`登录Node;3. 使用`crictl ps`找到Pod的Container ID;4. 获取PID并使用`nsenter`进入Pod的网络空间;5. 在`/var/tmp`目录下使用`tcpdump`抓包。完成后按Ctrl+C停止抓包。
146 12
GeneralDyG:南洋理工推出通用动态图异常检测方法,支持社交网络、电商和网络安全
GeneralDyG 是南洋理工大学推出的通用动态图异常检测方法,通过时间 ego-graph 采样、图神经网络和时间感知 Transformer 模块,有效应对数据多样性、动态特征捕捉和计算成本高等挑战。
174 18
GeneralDyG:南洋理工推出通用动态图异常检测方法,支持社交网络、电商和网络安全
基于Huffman树的层次化Softmax:面向大规模神经网络的高效概率计算方法
层次化Softmax算法通过引入Huffman树结构,将传统Softmax的计算复杂度从线性降至对数级别,显著提升了大规模词汇表的训练效率。该算法不仅优化了计算效率,还在处理大规模离散分布问题上提供了新的思路。文章详细介绍了Huffman树的构建、节点编码、概率计算及基于Gensim的实现方法,并讨论了工程实现中的优化策略与应用实践。
162 15
基于Huffman树的层次化Softmax:面向大规模神经网络的高效概率计算方法
神经架构搜索:自动化设计神经网络的方法
在人工智能(AI)和深度学习(Deep Learning)快速发展的背景下,神经网络架构的设计已成为一个日益复杂而关键的任务。传统上,研究人员和工程师需要通过经验和反复试验来手动设计神经网络,耗费大量时间和计算资源。随着模型规模的不断扩大,这种方法显得愈加低效和不够灵活。为了解决这一挑战,神经架构搜索(Neural Architecture Search,NAS)应运而生,成为自动化设计神经网络的重要工具。
机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用
医疗诊断是医学的核心,其准确性和效率至关重要。本文探讨了机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用。文章还讨论了Python在构建机器学习模型中的作用,面临的挑战及应对策略,并展望了未来的发展趋势。
572 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问