如何将InputStream转成String

这个例子将展示如何将InputStream转换成String。在下面的代码片段中我们读入一个data.txt文件,该文件可能来自于一个普通的文件夹或者来自jar文件中。

  1 package org.kodejava.example.io;

  2

  3  import java.io.InputStream;

  4  import java.io.IOException;

  5  import java.io.BufferedReader;

  6  import java.io.InputStreamReader;

  7

  8  public class StreamToString {

  9

  10     public static void main(String[] args) throws Exception {

  11         StreamToString sts = new StreamToString();

  12

  13         /*

  14          * 从数据文件中得到InputStream. 这个文件可以在应用程序的根目录下

  15          * 或者如果这个程序被打包成了一个jar, 它可以在这个jar文件的内部.

  16          *

  17          */

  18         InputStream is = sts.getClass().getResourceAsStream("/data.txt");

  19

  20         /*

  21          * 调用将InputStream转成String的函数

  22          */

  23         System.out.println(sts.convertStreamToString(is));

  24     }

  25

  26     public String convertStreamToString(InputStream is) throws IOException {

  27         /*

  28          * 为了将InputStream转换成String我们使用函数BufferedReader.readLine().

  29          * 我们迭代调用BufferedReader直到其返回null, null意味着没有其他的数据要读取了.

  30          * 每一行将会追加到StringBuilder的末尾, StringBuilder将作为String返回。

  31          *

  32          */

  33         if (is != null) {

  34             StringBuilder sb = new StringBuilder();

  35             String line;

  36

  37             try {

  38                 BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));

  39                 while ((line = reader.readLine()) != null) {

  40                     sb.append(line).append("\n");

  41                 }

  42             } finally {

  43                 is.close();

  44             }

  45             return sb.toString();

  46         } else {

  47             return "";

  48         }

  49     }

  50 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值