将输入流读取成String后返回

本文介绍了一个简单的Java工具类,用于从输入流中读取数据并转换为字符串。该工具类使用ByteArrayOutputStream来缓存读取的数据,并通过循环读取直到流结束。最后关闭输入流和输出流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >




import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * 读取流的工具
 * 
 * @author Kevin
 * 
 */
public class StreamUtils {

	/**
	 * 将输入流读取成String后返回
	 * 
	 * @param in
	 * @return
	 * @throws IOException
	 */
	public static String readFromStream(InputStream in) throws IOException {
		ByteArrayOutputStream out = new ByteArrayOutputStream();
		int len = 0;
		byte[] buffer = new byte[1024];

		while ((len = in.read(buffer)) != -1) {
			out.write(buffer, 0, len);
		}

		String result = out.toString();
		in.close();
		out.close();
		return result;
	}
}


可以使用 Apache POI 库来读取本地 Excel 文件,并将其以流的形式返回。下面是一个示例代码: ```java import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class ExcelUtils { public static InputStream readFileAsStream(String filePath) throws IOException { // 创建文件输入流 FileInputStream inputStream = new FileInputStream(filePath); // 使用 Apache POI 库打开 Excel 文件 Workbook workbook = WorkbookFactory.create(inputStream); // 将 Workbook 对象转换输入流 InputStream stream = workbookToStream(workbook); // 关闭文件输入流 inputStream.close(); // 返回输入流 return stream; } private static InputStream workbookToStream(Workbook workbook) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 将 Workbook 对象写入字节数组输出流 workbook.write(baos); // 将字节数组输出流转换输入流 ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); // 关闭字节数组输出流 baos.close(); // 返回输入流 return bais; } } ``` 在上面的代码中,`readFileAsStream` 方法接受一个文件路径作为参数,并返回一个输入流。该方法使用 `FileInputStream` 打开 Excel 文件,并使用 `WorkbookFactory` 创建 `Workbook` 对象。然后,它调用 `workbookToStream` 方法将 `Workbook` 对象转换为字节数组输出流,再将其转换为输入流返回。最后,该方法关闭了文件输入流。 请注意,在使用此代码时需要导入 `org.apache.poi` 库,它可以从 Apache POI 网站上下载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值