如何将InputStream转换为String

2019独角兽企业重金招聘Python工程师标准>>>…

大家好,又见面了,我是你们的朋友全栈君。

使用Apache库

不重复造轮子。最靠谱的方法,还是用Apache commons IOUtils 这样简单几行代码就搞定了

StringWriter writer = new StringWriter();
IOUtils.copy(inputStream, writer, encoding);
String theString = writer.toString();

或者 String theString = IOUtils.toString(inputStream, encoding)//这个方法其实封装了上面的方法,减少了一个参数

使用原生库

如果不想引入Apache库,也可以这样做

static String convertStreamToString(java.io.InputStream is) {  
    java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A"); 
    return s.hasNext() ? s.next() : "";
}

转载于:https://my.oschina.net/u/2477353/blog/616375

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126984.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 二进制补码的理解_25的八位原码反码补码

    二进制补码的理解_25的八位原码反码补码正数的原码=反码=补码。负数的原码、反码、补码关系为:     原码= 正数的原码符号位变为1,    反码= 正数的原码取反    补码= 正数的原码取反加1。 补码主要为了计算机进行减法运算。参考1:https://www.cnblogs.com/guanjianzhuo/p/6017291.html参考2:https://www.jia…

    2022年10月21日
    2
  • 1000套安卓(Android)毕业设计(带论文)、大作业、实例快速下载 (Android Studio)

    1000套安卓(Android)毕业设计(带论文)、大作业、实例快速下载 (Android Studio)ctrl+F快速定位序号 类型 项目名称 1 毕业设计 毕业设计-基于安卓Android学生考勤信息管理系统.zip 2 毕业设计 毕业设计-安卓Android教务选课成绩管理系统.zip 3 毕业设计 114基于Android的理财记账本20141215+论文+需求文档+演示视频.zip.zip 4 毕业设计 Android科大讯飞语音识别.zip 5 毕业设计 基于android的点餐系统.zip.z..

    2022年6月3日
    30
  • Mybaits-plus生成工具类,很详细

    Mybaits-plus生成工具类,很详细不熟悉配置文件就多生成几次自然就会了注意配置里面的输出路径,默认包名!<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependen

    2022年6月26日
    26
  • WEB框架本质和第一个Django实例

    Web框架本质我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端。这样我们就可以自己实现Web框架了。半成品自定义web框架可以说We

    2022年3月29日
    42
  • typedef struct Lnode{ Elemtype data; struct Lnode *next; } Lnode,*Linklist;「建议收藏」

    typedef struct Lnode{ Elemtype data; struct Lnode *next; } Lnode,*Linklist;「建议收藏」*next是指向下一个值的地址而*Linklist是当前这个值的地址,只是这个值里有数据data,和下一个值的地址就是说链表中,因为数据是随机储存的,所以地址不是连续的,要想读取下一个数,就要知道下一个数据的地址不知道有没有看懂,表达能力不是很好*Linklist相当于一个数组头指针,只是这个数组的元素是结构体*next则是构成链表的一个基本元素,指向该结点下一个结点的地址从某种意义上讲,*Linklist是指定了这段空间在内存中的位置(可以申请连续的结点空间),而*next则对结点进行了一

    2022年5月19日
    41
  • Angular面试题_session面试题

    Angular面试题_session面试题二十、angular的缺点有哪些?1.强约束导致学习成本较高,对前端不友好。但遵守AngularJS的约定时,生产力会很高,对Java程序员友好。2.不利于SEO因为所有内容都是动态获取并渲染生成的,搜索引擎没法爬取。一种解决办法是,对于正常用户的访问,服务器响应AngularJS应用的内容;对于搜索引擎的访问,则响应专门针对SEO…

    2022年10月17日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号