zoukankan      html  css  js  c++  java
  • 通过java的i/o机制进行图片流的存储以及对网络图片的存储

    存储内地图片思路:首先把原有的图片以流的方式读取出来,再以流的方式存储到目标文件:

    package imgStream;
    
    import java.io.*;
    
    public class ImgStream {
        public static void main(String srga[]) {
            File source = new File("user.jpg");
            File desk = new File("G:\learn\javademoS\imgs");
            if (!desk.exists()) {
                desk.mkdir();
            }
            try {
                FileInputStream inputStream = new FileInputStream(source);
                FileOutputStream outputStream = new FileOutputStream(new File("G:\learn\javademoS\imgs\fang.jpg"));
                int ch = inputStream.read();
                while (ch != -1) {//当流结束时返回-1
                    outputStream.write(ch);
                    ch = inputStream.read();
                }
                inputStream.close();
                outputStream.close();
                System.out.println("写入流成功");
            } catch (FileNotFoundException e) {
                System.out.println("文件不存在:" + e.getMessage());
            } catch (IOException e) {
                System.out.println("文件读取错误:" + e.getMessage());
            }
        }
    }
    

     

    存储网络图片思路:构造一个url,然后请求网络数据,然后再以流的方式写到文件当中:

    package imgStream;
    
    import java.net.URL;
    import java.net.URLConnection;
    
    import java.io.*;
    
    public class ImgStreamS {
    
        private static void system() throws Exception {
            String path = "http://ui.51bi.com/opt/siteimg/images/fanbei0923/Mid_07.jpg";
            //构造URL
            URL url = new URL(path);
    
            //打开连接
            URLConnection con = url.openConnection();
            //请求时间
            con.setConnectTimeout(4*1000);
            //输入流
            InputStream is = con.getInputStream();
            //1K的数据缓冲
            byte[] bs=  new byte[1024];
            //数据长度
            int len;
            //输出的文件流
            File sf = new File("G:\learn\javademos\imgs");
            if(!sf.exists()){
                sf.mkdirs();
            }
            OutputStream os = new FileOutputStream(sf.getPath()+"\test.jpg");
            //开始读取
            while((len = is.read(bs)) != -1){
                os.write(bs,0,len);
            }
            //关闭所有连接
            os.close();
            is.close();
        }
    
        public static void main(String args[]) throws Exception {
            ImgStreamS imgStream = new ImgStreamS();
           
            system();
        }
    }
    

      

  • 相关阅读:
    Maven实战读书笔记(三):Maven依赖
    Maven实战读书笔记(四):Maven生命周期与插件
    Maven实战读书笔记(一):Maven概述
    Spring Data Redis入门示例:程序配置(五)
    Spring Data Redis入门示例:字符串操作(六)
    zabbix api使用
    elasticsearch mappings之dynamic的三种状态
    自动添加windows 2012用户,并在jump添加授权
    python 查询es数据
    python获取zabbix Triggers top100
  • 原文地址:https://www.cnblogs.com/mmykdbc/p/8778286.html
Copyright © 2011-2022 走看看