美文网首页互联网科技Java 杂谈Spring-Boot
Java中怎么快速把InputStream转化为String?

Java中怎么快速把InputStream转化为String?

作者: Java技术剑 | 来源:发表于2019-12-26 15:23 被阅读0次

其实我只是偶尔上Stack Overflow,直到看了这个200万次阅读量的提问:HowdoI read/convert anInputStreamintoaStringinJava?

惊呆了!!!

怎么会有这么多人围观。

我第一反应的解决办法是使用 Apachecommons包的工具类 IOUtils,果不其然,第一条回答就是这个。

我的天!居然有2000+的赞!

继续往下看,发现大家的不少的骚操作

1.使用CharStreams (Guava)

2.使用Scanner

3.使用Stream API

Warning: This solution converts different line breaks (like \r\n) to \n.

4.使用parallel Stream API

Warning: This solution converts different line breaks (like \r\n) to \n.

5.使用InputStreamReader and StringBuilder

6.使用StringWriter and IOUtils.copy

7.使用ByteArrayOutputStream and inputStream.read

8.使用BufferedReader

Warning: This solution converts different line breaks (like \n\r) to line.separator system property (for example, in Windows to "\r\n").

9.使用 BufferedInputStream and ByteArrayOutputStream

10.使用 inputStream.read() and StringBuilder

Warning: This solution has problems with Unicode, for example with Russian text (works correctly only with non-Unicode text)

甚至,还贴出了微基准测试的结果,果然狠人啊。

对于小字符串(length = 175) 结果如下:mode = Average Time, system = Linux, score 1,343 is the best :

对于大字符串(length = 50100) 结果如下:mode = Average Time, system = Linux, score 200,715 is the best

如获宝藏,看来需要时不时的逛逛Stack Overflow了。

相关文章

网友评论

    本文标题:Java中怎么快速把InputStream转化为String?

    本文链接:https://www.haomeiwen.com/subject/dcxloctx.html