保存网络图片在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月前
|
机器学习/深度学习 计算机视觉
TPAMI 2024:计算机视觉中基于图神经网络和图Transformers的方法和最新进展
【10月更文挑战第3天】近年来,图神经网络(GNNs)和图Transformers在计算机视觉领域取得显著进展,广泛应用于图像识别、目标检测和场景理解等任务。TPAMI 2024上的一篇综述文章全面回顾了它们在2D自然图像、视频、3D数据、视觉与语言结合及医学图像中的应用,并深入分析了其基本原理、优势与挑战。GNNs通过消息传递捕捉非欧式结构,图Transformers则结合Transformer模型提升表达能力。尽管存在图结构构建复杂和计算成本高等挑战,但这些技术仍展现出巨大潜力。论文详细内容见:https://arxiv.org/abs/2209.13232。
48 3
|
3月前
|
存储 缓存 网络协议
网络丢包排查方法
网络丢包排查方法
|
3月前
|
监控 安全 iOS开发
|
3月前
|
域名解析 运维 监控
网络故障排查的常用工具与方法:技术深度解析
【8月更文挑战第20天】网络故障排查是一项复杂而重要的工作,需要网络管理员具备扎实的网络知识、丰富的实践经验和灵活的问题解决能力。通过掌握常用工具和方法,遵循科学的排查流程,可以显著提高故障排查的效率和准确性。希望本文能为读者在网络故障排查方面提供有益的参考和启示。
|
2月前
|
机器学习/深度学习 数据采集 算法
图像处理神经网络数据预处理方法
图像预处理步骤对于图像处理神经网络至关重要。这些步骤不仅保证了数据的一致性和质量,还可以通过数据增强等技术提高模型的泛化能力,从而提升模型的整体性能。每一步骤的选择和应用都基于具体任务和数据集的特性,并在模型训练和测试过程中起到关键作用。
57 0
|
3月前
|
存储 缓存 定位技术
如果遇到网络延迟问题,有哪些方法可以快速解决以保证视频源同步?
如果遇到网络延迟问题,有哪些方法可以快速解决以保证视频源同步?
|
3月前
|
机器学习/深度学习
【机器学习】面试题:LSTM长短期记忆网络的理解?LSTM是怎么解决梯度消失的问题的?还有哪些其它的解决梯度消失或梯度爆炸的方法?
长短时记忆网络(LSTM)的基本概念、解决梯度消失问题的机制,以及介绍了包括梯度裁剪、改变激活函数、残差结构和Batch Normalization在内的其他方法来解决梯度消失或梯度爆炸问题。
125 2
|
3月前
|
存储 监控 安全
确保大型组织网络安全的策略与方法
【8月更文挑战第24天】
94 0
|
3月前
|
网络虚拟化 数据安全/隐私保护
手把手教网络工程师2种方法如何恢复交换机配置
手把手教网络工程师2种方法如何恢复交换机配置
|
3月前
|
安全 网络协议 网络安全
常见网络攻击方式及防御方法
网络安全威胁的不断演变和增长,网络攻击的种类和数量也在不断增加,攻防对抗实战演练在即,让我们一起了解一下常见网络攻击方式及防御方法。
129 0

热门文章

最新文章