ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java IO流从网页链接直接写入文件,无需本地转存

2021-06-17 10:01:08  阅读:309  来源: 互联网

标签:word java URL 流从 IO new byte httpURLConnection


写aspose word时有用到,网上的图片在磁盘转存会拖慢时间,就查了查,学了这种方法,可以整个在内存中操作。

操作图片示例

public void method() throws Exception {
        //通过java.net.URL获取链接图片(java 1.8原生api)
        //这里的链接不管是文件还是图片,
        //一定是访问就直接下载或查看的那种,不能有其他内容
        URL url = new URL("http://wenjuanba-pro.oss-cn-beijing.aliyuncs.com/null/image/2021/6/15/4287dd83cd4f474288aaa72c4d3de2ac.png");
        HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();

        //不用一直开启,如果获取失败可以尝试设置这几项
//        httpURLConnection.setDoInput(true);
//        httpURLConnection.setRequestMethod("GET");
//        httpURLConnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

        //获取图片长度,创建存放数据的byte数组
        httpURLConnection.getContentLength();
        byte[] result = new byte[httpURLConnection.getContentLength()];

        //通过java.net.HttpURLConnection创建输入流(java 1.8原生api)
        InputStream inputStream =  httpURLConnection.getInputStream();

        //通过read(byte[])来将数据存入创建好的数组,无需接受返回值
        //这里就已经完成了
        inputStream.read(result);

        //aspose word api 用来输出word的
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);

        //将文件写入word里
        builder.insertImage(result,125L,100L);
        doc.save("src/main/resources/createSurveyWord/testImage/test.docx", SaveFormat.DOCX);//本地环境

        inputStream.close();
    }

标签:word,java,URL,流从,IO,new,byte,httpURLConnection
来源: https://blog.csdn.net/weixin_43971777/article/details/117981598

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有