java zipoutputstream,zipoutputstream转inputstream
一、公共多部分文件依赖groupId commons-文件上传/groupId artifact id commons-文件上传/artifactId版本1 .3 .3/version/dependency @ test public void testOSSServiceImport(){ File File=new File( test。png’);DiskFileItem fileItem=(DiskFileItem)new DiskFileItem factory().createItem(file ,MediaType .ALL_VALUE,true,file。getname());try(InputStream input=new file InputStream(file);输出流OS=fileitem。get output stream()){ iou tils。复制(输入,OS);} catch(Exception e){ throw new IllegalArgumentException(无效文件:‘e,e’);} multipart file multi=new CommonsMultipartFile(fileItem);}二、mockFilepom引入弹簧试验
弹簧靴启动器测试中包含弹簧试验相关依赖从属groupId组织。spring框架。boot/groupId artifact id spring-boot-starter-test/artifact id/dependency导入组织。spring框架。嘲笑。网络。模拟多部分文件;多部分文件file=新的模拟多部分文件(名称,名称,媒体类型.MULTIPART_FORM_DATA_VALUE,inputStream);三、从网络全球资源定位器(统一资源定位器)中操作压缩文件网络文本文件为可移植文档格式文件的扩展名(可移植文档格式的缩写)和流水号的映射
20211013 _ 7935015 _ 001 _ 150000001903734 _ 1634117754785 _ 0 .pdf 8043433211013121577775320211013 _ 7935016 _ 008 _ 150000001903734 _ 1634117754402 _ 2020157777777777532020213 _ 7933555016 _ 00008 _ 1500000中的可移植文档格式文件的扩展名(可移植文档格式的缩写)文件步骤:
1、从网络文本文件中获取可移植文档格式文件的扩展名(可移植文档格式的缩写)和流水号的映射,存入到模拟中。2、从对应的流水号中取出对应的可移植文档格式文件的扩展名(可移植文档格式的缩写)文件名。3、通过可移植文档格式文件的扩展名(可移植文档格式的缩写)文件名从活力文件中取出可移植文档格式文件的扩展名(可移植文档格式的缩写)文件,并包装成多文件,用于文件上传到文件服务器。
引入通用超正析象管或公共-文件上传的专家依赖依赖关系groupId commons-io/groupId工件Id commons-io/工件id版本2 .11 .0/版本/依赖关系
groupId commons-文件上传/groupId
工件id commons-文件上传/工件id
版本1.4/版本
/依赖关系
* ZipFileUtils工具类` ` javapublic类私有静态最终记录器=记录器工厂。获取记录器(ZipFileUtils。类);/** * 获取网络文件流* @param urlStr网络文件url * @return返回输入流* @抛出IO异常IO异常*/私有静态InputStream downLoadFromUrl(字符串urlStr)抛出io异常{ URL URL=新URL(urlStr);http URL connection conn=(http URL connection)URL。打开连接();//设置超时间为3秒conn . setconnecttimeout(3 * 1000);//防止屏蔽程序抓取而返回403错误conn.setRequestProperty(用户代理, Mozilla/4.0(兼容;MSIE 5.0 windows NTDigExt));//得到输入流返回conn . getinputstream();} /** * 获取网络文件流中的内容,一次读一行,并将空格拆开,返回* @param urlStr网络文件url * @return返回可移植文档格式文件的扩展名(可移植文档格式的缩写)文件名和银行流水号映射集合* @抛出IO异常IO异常*/public static Map String,List String downLoadFileContentFromUrl(String urlStr)抛出IOException { Map String,列表字符串result Map=new HashMap();InputStream InputStream=nullBufferedReader br=null尝试{ //得到输入流inputStream=downLoadFromUrl(urlStr);//构造一个类类来读取文件br=新缓冲读取器(新输入流读取器(输入流,标准字符集.UTF _ 8));String line=null//使用阅读线方法,一次读一行while ((line=br.readLine())!=null) { //通过空格进行切分string[]split=line。拆分(“”);如果(拆分。length=2){ List String pdfNameList=结果映射。get(split[1]);if(集合utils。isempty(pdfNameList)){ pdfNameList=new ArrayList();pdfnamelist。add(split[0]);resultMap.put(split[1],pdfNameList);} else { pdfnamelist。add(split[0]);} } } }最后{ //关闭流如果(br!=null){ br。close();} if(inputStream!=null){ inputstream。close();} }返回结果图;} /** * 根据pdfName名称,从网络中获取活力中的可移植文档格式文件的扩展名(可移植文档格式的缩写)文件InputStream * @param urlStr Zip文件的下载url * @param pdfName pdf名称* @返回返回输入流* @抛出IO异常IO异常*/public static InputStream downLoadZipFileFromUrl(String urlStr,String pdfName)引发IOException { //声明字节输出数组ByteArrayOutputStream byte out=null;zip inputStream zipIn=null inputStream inputStream=null尝试{ //得到输入流zipIn=new zip inputstream(downLoadFromUrl(urlStr));ZipEntry条目=nullwhile((entry=zipin。获取下一个条目())!=null){ if(pdf名称。等于(条目。getname()){//初始化字节输出数组byte out=new ByteArrayOutputStream();IOUtils.copy(zipIn,byte out);inputStream=new bytearray inputStream(字节输出。tobytearray());} }返回输入流}最后{ //关闭流if(byteOut!=null){字节输出。close();}如果(zipIn!=null){ zipin。close();} } } /** * 根据pdfName名称,从网络中获取活力中的可移植文档格式文件的扩展名(可移植文档格式的缩写)文件的MultipartFile * @param urlStr Zip文件的下载url * @param pdfName Zip文件的下载URL * @返回多部分文件* @抛出IO异常IO异常*/public static MultipartFile getMultipartFileFromUrl(String urlStr,String pdfName)引发io异常{ String fileName= Xxx文件 pdf ;multipart file multipart file=null;InputStream InputStream=downLoadZipFileFromUrl(urlStr,pdf name);if(inputStream!=null){ File file=新文件(文件名);DiskFileItem fileItem=(DiskFileItem)new DiskFileItem factory().createItem(file ,MediaType .ALL_VALUE,true,file。getname());try(输出流OS=fileitem。get output stream()){ iou tils。copy(inputStream,OS);} catch(异常e) { logger.error(输入流转DiskFileItem异常);抛出新的IllegalArgumentException(无效文件:‘e,e’);} multipart file=new CommonsMultipartFile(fileItem);}返回多文件}}参考:
https://www.cnblogs.com/yadongliang/p/13578889.html
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。