import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
/**
*
* @author King
* @Date 2010-7-19
*
*/
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 {
ByteArrayInputStream 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);
}
}
分享到:
相关推荐
在Java编程中,String对象和Byte类型的转换是常见的操作,特别是在网络编程中,因为网络通信通常涉及字节流的处理。下面将详细讲解Java中如何进行这两种类型之间的转换,并探讨其在网络编程中的应用。 首先,让我们...
总结来说,Java中InputStream、String和File的相互转化是编程中常见的操作,理解并掌握这些转换方法对于提升开发效率和代码质量至关重要。在进行转换时,要结合具体场景,选择合适的方法,同时注意性能优化和资源...
在Java编程语言中,`String`对象与`byte[]`数组之间的转换是常见的操作之一。理解这两者之间的关系对于处理文本数据、网络通信及文件读写等任务至关重要。 #### 一、String与byte[]的基本概念 - **String**: 在...
总结,Android通过内置的Base64工具类可以轻松地完成文件与String之间的转换,这对于数据传输和存储非常有用。只要理解了Base64编码的基本原理和Android提供的API,就可以高效地实现这种转换。在实际项目中,根据...
总之,理解和掌握String与InputStream之间的转换技巧是Java开发人员必备的技能之一,能够帮助我们在处理各种数据输入输出问题时更加游刃有余。对于提供的文件"String与InputStream相互转换 - hanqunfeng的专栏 - ...
尤其在处理二进制数据时,byte类型与其他数据类型(如String、boolean、int、InputStream等)之间的转换尤为重要。本文档旨在详细介绍byte与各种常见类型之间的转换方法,帮助开发者更好地理解和掌握这一技能。 ###...
在实际开发中,`PipedOutputStream`和`PipedInputStream`也可以用来实现输出流和输入流之间的连接,它们之间可以通过管道进行数据传输,但这种方式相对复杂,适用于更高级的同步和异步操作。 总结,将`OutputStream...
这篇博文将探讨如何在Java中实现这一过程,主要涉及`Image`对象与`String`对象之间的转换方法。 首先,我们要理解这两种类型的基本概念。`String`是Java中的一个类,用于表示不可变的字符序列,通常用来存储文本...
本篇文章将深入探讨字节流工具的使用方法、InputStream与byte数组之间的转换以及如何将流另存为文件。 1. **字节流概述** - 字节流分为输入流和输出流,分别用于数据的读取和写入。Java中的InputStream和...
本文将深入探讨几种常见的编码格式,如GB2312、UTF-8以及UTF-8-BOM,并详细讲解如何在C#中进行这些编码格式之间的转换,同时会涉及到与Stream相关的操作。 GB2312,全称为“国标汉字编码字符集”,是中国大陆广泛...
本文主要介绍了 Java 实现 InputStream 流的复制代码实例,通过示例代码详细地介绍了如何复制 InputStream 对象,并提供了实际的应用场景和解决方案。 InputStream 基础知识 在 Java 中,InputStream 是一个抽象类...
- `InputStreamReader` 和 `OutputStreamWriter`:它们可以与`InputStream`和`OutputStream`结合使用,用于在字节流和字符流之间进行编码转换。 - `BufferedReader` 和 `BufferedWriter`:提供缓冲功能,提高读写...
在Java编程中,将网络上的图片读取并转换为Base64字符串是一项常见的任务,尤其在Web开发中,这样的操作可以用于数据传输或者存储。Base64是一种编码方式,能够将二进制数据转化为可打印的ASCII字符,方便在网络上...
4. **String的getBytes()和new String(byte[], charset)**:字符串类提供了获取字节数组的方法`getBytes()`,可以指定编码方式;反之,`new String(byte[], charset)`可以根据字节数组和编码创建新的字符串。 5. **...
byte[] postArray = Encoding.ASCII.GetBytes(xmlString); client.Headers.Add("Content-Type", "text/xml"); byte[] responseArray = client.UploadData(url, postArray); ``` 这段代码中,首先定义了一个包含XML...
Base64编码可以将二进制数据转换为文本数据,使得数据传输和存储更加安全和可靠。 使用Apache Commons Codec库 在本文中,我们使用Apache Commons Codec库来实现Base64编码。Apache Commons Codec库是一个功能强大...
在Java中,字符(`char`)与字节(`byte`)之间的转换是通过编码器(encoder)和解码器(decoder)完成的。Sun公司的标准库中提供了`sun.io.ByteToCharConverter`类,用于实现不同编码间的转换。例如,从GB2312编码...
此外,`InputStreamReader`和`OutputStreamWriter`类是处理字符流的桥梁,它们允许我们在字节流和字符流之间进行转换,并指定所需的字符编码。例如,`new InputStreamReader(inputStream, "UTF-8")`会创建一个读取器...
Java实现文件和base64流的相互转换功能示例 Java实现文件和base64流的相互转换功能是 Java 编程中的一项重要技术,涉及到文件读取、Base64 编码和解码等操作。本文将详细介绍 Java 实现文件和 base64 流的相互转换...
根据库的作者和年龄,它可能使用byte[] , InputStream , ByteBuffer或ReadableByteChannel 。 如果字节表示字符串,则还需要担心String , Reader和CharSequence 。 记住如何在它们之间进行转换是一项不费力的...