如何在 Java 中将InputStream转换为字符串

原文:https://www.studytonight.com/java-examples/how-to-convert-inputstream-to-string-in-java

在这篇文章中,我们将使用InputStream读取一个文件,然后将其转换为字符串。了解文件处理操作所需的转换和要求非常有用。

要转换输入流,有几种方法,下面介绍其中两种。我们使用 Java Scanner类和 Java 8 Stream 概念将一个流转换成字符串。

这里,我们有一个示例文件 abc.txt ,其中包含一些数据,由 Scanner 类读取。

// abc.txt

Welcome to Studytonight.com
It is technical portal.

举例时间:

让我们创建一个从输入流中获取字符串的例子。InputStream是 Java 中一个用来读取文件的接口,我们用 Scanner 类的nextLine()方法读取文件数据并返回一个字符串。

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) throws IOException{  
        File file = new File("abc.txt");
        InputStream is = new FileInputStream(file);
        Scanner s = new Scanner(is);
        String s1 = "";
        while(s.hasNext()) {
            s1 += s.nextLine()+"\n";
        }
        System.out.println(s1);
        is.close();
    }
}

欢迎来到 Studytonight.com 是技术门户。

另一个例子的时间:

还有另一种从InputStream获取字符串的方法,例如使用lines()方法返回数据流,该数据流进一步由collect()方法收集并作为字符串返回。最后,确保正确关闭文件连接。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.stream.Collectors;
public class Main {
    public static void main(String[] args) throws IOException{  
        File file = new File("abc.txt");
        InputStream is = new FileInputStream(file);
        String result = new BufferedReader(new InputStreamReader(is))
                  .lines().collect(Collectors.joining("\n"));
        System.out.println(result);
        is.close();
    }
}

欢迎来到 Studytonight.com 是技术门户。