file 从InputStream读取byte[]示例
file 从InputStream读取byte[]示例
- public static byte[] getStreamBytes(InputStream is) throws Exception {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024];
- int len = 0;
- while ((len = is.read(buffer)) != -1) {
- baos.write(buffer, 0, len);
- }
- byte[] b = baos.toByteArray();
- is.close();
- baos.close();
- return b;
- }
- default byte[] readFileBytes(InputStream is){
- byte[] data = null;
- try {
- if(is.available()==0){//严谨起见,一定要加上这个判断,不要返回data[]长度为0的数组指针
- return data;
- }
- data = new byte[is.available()];
- is.read(data);
- is.close();
- return data;
- } catch (IOException e) {
- LogCore.BASE.error("readFileBytes, err", e);
- return data;
- }
- }
图片上传功能是我们web里面经常用到的,获得的方式也有很多种,这里我用的是request.getInputStream()获取文件流的方式。想要获取文件流有两种方式,附上代码
12345678910int length = request.getContentLength();//获取请求参数长度。byte[] bytes = new byte[length];//定义数组,长度为请求参数的长度DataInputStream dis = new DataInputStream(request.getInputStream);//获取请求内容,转成数据输入流int readcount = 0;//定义输入流读取数while(readcount < length){int aa= dis.read(bytes,readcount,length); //读取输入流,放入bytes数组,返回每次读取的数量readcount = aa + readcount; //下一次的读取开始从readcount开始}//读完之后bytes就是输入流的字节数组,将其转为字符串就能看到String bb = new String(bytes,"UTF-8");上面这种是利用读取输入流的方式,也可以用写入字节输入流的方式获取,就不需要获取请求长度了
123456789DataInputStream dis = new DataInputStream(request.getInputStream());ByteArrayOutputStream baot = new ByteArrayOutputStream();byte[] bytes = new byte[1024]; //定义一个数组 用来读取int n = 0;//每次读取输入流的量while((n=dis.read(bytes))!=-1){baot.write(bytes); //将读取的字节流写入字节输出流}byte[] outbyte = boat.toByteArray();//将字节输出流转为自己数组。String bb = new String(outbyte,"UTF-8");
file 从InputStream读取byte[]示例的更多相关文章
- byte数组和File,InputStream互转
1.将File.FileInputStream 转换为byte数组: File file = new File("file.txt"); InputStream input = n ...
- java 中 byte[]、File、InputStream 互相转换
1.将File.FileInputStream 转换为byte数组: File file = new File("test.txt"); InputStream input = n ...
- 【java】java 中 byte[]、File、InputStream 互相转换
========================================================================= 使用过程中,一定要注意close()掉各个读写流!! ...
- byte[],File和InputStream的相互转换
File.FileInputStream 转换为byte[] File file = new File("test.txt"); InputStream input = new F ...
- 【Spring】获取资源文件+从File+从InputStream对象获取正文数据
1.获取资源文件或者获取文本文件等,可以通过Spring的Resource的方式获取 2.仅有File对象即可获取正文数据 3.仅有InputStream即可获取正文数据 package com.sx ...
- File相关的读取和写入以及复制
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileI ...
- InputStream读取文件到string后OutputStream到文件,按String和Bytes拷贝
http://www.iteye.com/problems/72150 写了一段代码 大体是 InputStream读取文件到string后OutputStream到文件 遇到的问题为TXT文件大小格 ...
- File根据inputstream复制文件到临时目录,使用完之后删除
项目中有这个需求: 1)上传文件通过公司平台的校验,校验成功后,通过接口,返回文件流: 2)我们根据这个文件流进行操作.这里,先将文件流复制文件到项目临时目录WEB-INF/temp;文件使用完毕,删 ...
- InputStream 读取中文乱码 扩展
对于InputStream读取中文乱码,下面这段话给出了很好的解释,以及后续编码上的扩展. BufferedInputStream和BufferedOutputStream是过滤流,需要使用已存在的节 ...
随机推荐
- X264-libx264编码库
X264编码库libx264实现真正的视频编解码,该编解码算法是基于块的混合编码技术,即帧内/帧间预测,然后对预测值变换.量化,最后熵编码所得. 编码帧的类型分为I帧(x264_type_i).P帧( ...
- js 过滤字符 和检测 特殊字符【转】
// var str1 = str.replace(/\[\\'\\"\\\\\\/\\b\\f\\n\\r\\t\]/g, '');// 去掉转义字符 // var str2= str.r ...
- flask上下文管理之threading.local
Flask之上下文管理 知识储备之问题情境: request中的参数: 单进程单线程 单进程多线程-->reqeust 会因为多个请求,数据发生错乱.--->可以基于threading.l ...
- jmeter压测学习6-HTTP Cookie管理器
前言 web网站的请求大部分都有cookies,jmeter的HTTP Cookie管理器可以很好的管理cookies. 我用的 jmeter5.1 版本,直接加一个HTTP Cookie管理器放到请 ...
- 逆向工程文件example完美结合使用PageHelper分页插件及分页不成功原因
原生的mybatis需要手写sql语句,项目数据库表多了之后,可以让你写sql语句写到手软,于是mybatis官方提供了mybatis-generator:mybatis逆向工程代码生成工具,用于简化 ...
- jenkins+maven+svn实现springboot项目的自动化部署过程
说明:部署springboot项目的jar 前提(参考:https://www.cnblogs.com/myitnews/p/11493779.html): 全局安全配置(前面配置过) 全局工具配置( ...
- Eclipse分享和检出(六)
一.创建资源库位置 1. 切换到透视图 SVN 资源库:Window--Show View--Other,搜索“SVN资源库” 2. 创建资源库位置,右键--新建--资源库位置 3. 输入可用的版 ...
- Maven的Scope区别笔记
依赖的Scopescope定义了类包在项目的使用阶段.项目阶段包括: 编译,运行,测试和发布. 分类说明compile 默认scope为compile,表示为当前依赖参与项目的编译.测试和运行阶段,属 ...
- luoguP4213 【模板】杜教筛(Sum)杜教筛
链接 luogu 思路 为了做hdu来学杜教筛. 杜教筛模板题. 卡常数,我加了register居然跑到不到800ms. 太深了. 代码 // luogu-judger-enable-o2 #incl ...
- 【2019.7.16 NOIP模拟赛 T2】折叠(fold)(动态规划)
暴力\(DP\) 考虑暴力\(DP\),我们设\(f_{i,j}\)表示当前覆盖长度为\(i\),上一次折叠长度为\(j\)的方案数. 转移时需要再枚举这次的折叠长度\(k\)(\(k\ge j\)) ...