博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java InputStream转换为String
阅读量:2531 次
发布时间:2019-05-11

本文共 4515 字,大约阅读时间需要 15 分钟。

Today we will learn how to convert InputStream to String in Java. While working on files, sometimes we have to read files and then convert InputStream data to String for further processing.

今天,我们将学习如何在Java中将InputStream转换为String。 在处理文件时,有时我们必须读取文件,然后将InputStream数据转换为String进行进一步处理。

Java InputStream转换为String (Java InputStream to String)

We can convert InputStream to String in many ways.

我们可以通过多种方式将InputStream转换为String。

  1. BufferedReader

    缓冲读取器
  2. StringWriter

    StringWriter
  3. Scanner

    扫描器

Let’s look into all these classes to convert InputStream object to String.

让我们研究所有这些类,以将InputStream对象转换为String。

1. BufferedReader (1. BufferedReader)

Here is a simple program showing java InputStream to String conversion using .

这是一个简单的程序,显示了使用 java InputStream到String的转换。

import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;public class InputStreamToStringUsingBufferedReader {	final static String fileName = "/Users/pankaj/Downloads/file.txt";	public static void main(String[] args) throws IOException {		long start = System.currentTimeMillis();		FileInputStream fileInputStream = null;		BufferedReader bufferedReader = null;		StringBuilder inputSB = null;		try {			fileInputStream = new FileInputStream(fileName);			bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream, "UTF-8"));			inputSB = new StringBuilder();			String line = bufferedReader.readLine();			while (line != null) {				inputSB.append(line);				line = bufferedReader.readLine();				if (line != null) {					// add new line character					inputSB.append("\n");				}			}		} finally {			bufferedReader.close();			fileInputStream.close();		}		String str = inputSB.toString();		long end = System.currentTimeMillis();		System.out.println("InputStream to String using BufferedReader = " + (end - start) + "ms");	}}

2. StringWriter (2. StringWriter)

We can use StringWriter too for converting InputStream to String. Note that it’s also using BufferedReader but writing data to StringWriter and then easily converting to String.

我们也可以使用StringWriter将InputStream转换为String。 请注意,它也使用BufferedReader但将数据写入StringWriter,然后轻松转换为String。

import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.Reader;import java.io.StringWriter;import java.io.Writer;public class InputStreamToStringUsingStringWriter {	final static String fileName = "/Users/pankaj/Downloads/file.txt";	public static void main(String args[]) throws IOException {		long start = System.currentTimeMillis();		FileInputStream fileInputStream = null;		Reader reader = null;		Writer writer = new StringWriter();		char[] buffer = new char[1024];		try {			fileInputStream = new FileInputStream(fileName);			reader = new BufferedReader(new InputStreamReader(fileInputStream, "UTF-8"));			int n;			while ((n = reader.read(buffer)) != -1) {				writer.write(buffer, 0, n);			}		} finally {			reader.close();			writer.close();			fileInputStream.close();		}		String str = writer.toString();		long end = System.currentTimeMillis();		System.out.println("InputStream to String using StringWriter = " + (end - start) + "ms");	}}

3.扫描仪 (3. Scanner)

We can also use class for reading a file as InputStream and convert to String.

我们还可以使用类将文件读取为InputStream并转换为String。

import java.io.FileInputStream;import java.io.IOException;import java.util.Scanner;public class InputStreamToStringUsingScanner {	final static String fileName = "/Users/pankaj/Downloads/file.txt";	public static void main(String[] args) throws IOException {		long start = System.currentTimeMillis();		FileInputStream fileInputStream = null;		Scanner scanner = null;		try {			fileInputStream = new FileInputStream(fileName);			scanner = new Scanner(fileInputStream, "UTF-8");			String str = scanner.useDelimiter("\\A").next();		} finally {			fileInputStream.close();			scanner.close();		}		long end = System.currentTimeMillis();		System.out.println("InputStream to String using Scanner = "+(end-start)+"ms");	}}

Java InputStream到字符串测试 (Java InputStream to String Test)

I executed all the above programs on a file of 176 MB. Below is the result of the test run.

我在176 MB的文件上执行了上述所有程序。 以下是测试运行的结果。

That’s all for converting InputStream to String in Java. If you are looking for the best performance, then you should do some test run with sample data of your choice and then go for the best performing method.

这就是在Java中将InputStream转换为String的全部。 如果您正在寻找最佳性能,则应使用您选择的样本数据进行一些测试,然后再选择性能最佳的方法。

References:

参考文献:

翻译自:

转载地址:http://bmozd.baihongyu.com/

你可能感兴趣的文章
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_37、分布式缓存Redis介绍...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_42、SpringBoot常用定时任务配置实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_39、SpringBoot2.x整合redis实战讲解...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第14节 高级篇幅之SpringBoot多环境配置_59、SpringBoot多环境配置介绍和项目实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_41、SpringBoot定时任务schedule讲解...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_43、SpringBoot2.x异步任务实战(核心知识)...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第11节 Logback日志框架介绍和SpringBoot整合实战_45、SpringBoot2.x日志讲解和Logback配置实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_1_02技术选型
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_汇总
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_2_01传统架构演进到分布式架构
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_2_02 微服务核心基础讲解
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_2_04微服务下电商项目基础模块设计...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-01 什么是微服务的注册中心
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-03CAP原理、常见面试题
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-04 SpringCloud微服务核心组件Eureka介绍和闭源后影响...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-05 服务注册和发现Eureka Server搭建实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-06 服务注册和发现之Eureka Client搭建商品服务实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-07 Eureka服务注册中心配置控制台问题处理...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-01 常用的服务间调用方式讲解
查看>>