`
阅读更多
package util;

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

/**
 * 
 * @author Andy.Chen
 * @mail Chenjunjun.ZJ@gmail.com
 * 
 */
public class InputStreamUtils {

	final static int BUFFER_SIZE = 4096;

	/**
	 * 将InputStream转换成String
	 * 
	 * @param in
	 *            InputStream
	 * @return String
	 * @throws Exception
	 * 
	 */
	public static String InputStreamTOString(InputStream in) throws Exception {

		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
		byte[] data = new byte[BUFFER_SIZE];
		int count = -1;
		while ((count = in.read(data, 0, BUFFER_SIZE)) != -1)
			outStream.write(data, 0, count);

		data = null;
		return new String(outStream.toByteArray(), "ISO-8859-1");
	}

	/**
	 * 将InputStream转换成某种字符编码的String
	 * 
	 * @param in
	 * @param encoding
	 * @return
	 * @throws Exception
	 */
	public static String InputStreamTOString(InputStream in, String encoding)
			throws Exception {

		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
		byte[] data = new byte[BUFFER_SIZE];
		int count = -1;
		while ((count = in.read(data, 0, BUFFER_SIZE)) != -1)
			outStream.write(data, 0, count);

		data = null;
		return new String(outStream.toByteArray(), "ISO-8859-1");
	}

	/**
	 * 将String转换成InputStream
	 * 
	 * @param in
	 * @return
	 * @throws Exception
	 */
	public static InputStream StringTOInputStream(String in) throws Exception {

		InputStream is = new ByteArrayInputStream(in.getBytes("ISO-8859-1"));
		return is;
	}

	/**
	 * 将InputStream转换成byte数组
	 * 
	 * @param in
	 *            InputStream
	 * @return byte[]
	 * @throws IOException
	 */
	public static byte[] InputStreamTOByte(InputStream in) throws IOException {

		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
		byte[] data = new byte[BUFFER_SIZE];
		int count = -1;
		while ((count = in.read(data, 0, BUFFER_SIZE)) != -1)
			outStream.write(data, 0, count);

		data = null;
		return outStream.toByteArray();
	}

	/**
	 * 将byte数组转换成InputStream
	 * 
	 * @param in
	 * @return
	 * @throws Exception
	 */
	public static InputStream byteTOInputStream(byte[] in) throws Exception {

		ByteArrayInputStream is = new ByteArrayInputStream(in);
		return is;
	}

	/**
	 * 将byte数组转换成String
	 * 
	 * @param in
	 * @return
	 * @throws Exception
	 */
	public static String byteTOString(byte[] in) throws Exception {

		InputStream is = byteTOInputStream(in);
		return InputStreamTOString(is);
	}

}
1
1
分享到:
评论

相关推荐

    Excel POI 工具类

    1. **读取Excel文件**:工具类可能包含一个静态方法,接受文件路径或InputStream作为参数,返回一个工作簿对象,这样开发者可以方便地遍历工作表和单元格。 2. **写入Excel文件**:创建新的工作簿,添加工作表,...

    常用工具类常用工具类.zip

    在Java编程语言中,"工具类"通常指的是包含各种实用方法的类,这些方法可以用于执行常见的编程任务,而无需创建实例。它们通常是静态方法集合,可以被不同类方便地调用,提高了代码的可复用性和效率。下面我们将深入...

    Drawable Bitmap InputStream byte[]相互转化工具类

    在实现这些转换时,为了提高代码的复用性和效率,可以使用单例模式来创建一个工具类,如提供的`FormatTools.java`。单例模式确保了类只有一个实例,减少了资源消耗,同时提供了一个全局访问点,方便在应用中调用这些...

    java常用工具类汇总

    "Java常用工具类汇总"是一个集合了各种实用工具类的资源,旨在方便开发者在处理常见任务时提高效率。这个工具类库覆盖了字符串、文件、数组以及数学等多个方面,同时也提供了相应的API文档,使得开发者能够更好地...

    java常用工具类封装util.rar

    在Java编程中,工具类(Util)是一种常见的设计模式,用于封装一组静态方法,这些方法在各种场景下都能被重复使用。"java常用工具类封装util.rar"这个压缩包文件很可能包含了开发者为了提高代码复用性和简洁性而编写...

    读取properties文件工具类

    这个"读取properties文件工具类"是为了简化程序中对`.properties`文件的读取操作而设计的。通过这样的工具类,开发者可以方便地加载和获取配置文件中的属性值,避免重复编写相同的代码。下面我们将详细探讨`...

    Java实现的Https请求工具类

    在Java编程中,HTTPS(Hypertext Transfer Protocol Secure)是一种基于HTTP协议的安全通信协议,用于在客户端和服务器之间建立...在实际项目中,这样的工具类能够提高代码的可复用性和维护性,降低网络请求的复杂度。

    Https请求工具类,Java实现http请求,https请求

    Https请求工具类,Java实现http请求,https请求 本篇文章将详细介绍如何使用Java语言实现Http和Https请求的工具类,包括如何建立Https...该工具类可以用于各种Java应用程序中,例如Web应用程序、移动应用程序等。

    SpringBoot之自带工具类常用示例

    在Spring Boot框架中,开发人员可以利用其内置的工具类来简化常见的编程任务,提高开发效率。这些工具类涵盖了许多方面,包括日期时间处理、文件操作、字符串操作等。本篇将详细介绍Spring Boot中的一些常用工具类...

    解压缩工具类

    在IT行业中,尤其是在Java开发领域,解压缩工具类是日常工作中不可或缺的一部分。"解压缩工具类"这个标题指的是一个特定的Java类库,它提供了解压缩功能,方便开发者在项目中快速实现对压缩文件(如ZIP或RAR)的处理...

    java文件上传下载工具类

    为了简化这些操作,开发者经常编写工具类,以封装复杂的过程并提供简洁的API。以下是对"java文件上传下载工具类"这一主题的详细解释。 首先,让我们了解文件上传。在Web应用中,用户可能需要上传文件,如图片、文档...

    28个java常用的工具类

    在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定任务,如数据处理、格式化、计算等。Java提供了丰富的内置工具类,但开发者也经常创建自定义工具类以满足项目需求。标题...

    java常用的工具类整理28个

    在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定任务,如数据操作、文件处理、数学计算等。它们通常不包含实例变量,只提供静态方法服务,帮助开发者提高代码的复用性和...

    完整的java文件读写工具类

    为了简化这些操作,开发者经常编写工具类,提供方便的方法来处理文件和目录。本篇将详细讲解标题为"完整的java文件读写工具类"所涉及的核心知识点,以及如何实现描述中提到的文件与目录管理功能。 1. **Java IO基础...

    读取yml文件工具类.zip

    为了方便地读取和解析这些配置文件,通常会创建一个工具类来封装操作。下面,我们将深入探讨如何在Java中实现一个YAML文件读取工具类,并介绍相关的技术点。 首先,我们需要引入一个能够处理YAML文件的库。在Java中...

    安卓开发工具类

    在安卓应用开发中,工具类(Utils Class)是开发者经常使用的辅助组件,它们通常包含一组静态方法,为各种常见任务提供便利。以下是对标题“安卓开发工具类”和描述中涉及知识点的详细解释: 1. **日期处理工具类**...

    java 常用工具类

    Java工具类是Java编程中非常重要的组成部分,它们提供了一系列预定义的方法,可以帮助开发者高效地处理各种常见任务,而无需从头实现。在Java中,最知名的工具类库是`java.util`包,它包含了大量方便实用的类。下面...

    android 常用工具类集合

    在Android开发过程中,工具类集合是非常重要的一部分,它们可以极大地提高开发效率,简化代码,使得开发者能够更加专注于业务逻辑。本篇文章将详细讲解"android常用工具类集合"中涉及的关键知识点,包括网络连接、...

    解析yml、yaml的工具类库文件

    标题提到的"解析yml、yaml的工具类库文件"是关于处理YAML格式文件的软件组件,这种工具库在开发过程中非常实用,特别是对于需要处理配置信息或者进行数据交换的项目。 描述中提及了"逆向开发解析apktool.yml",这...

Global site tag (gtag.js) - Google Analytics