这个例子将展示如何将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 }