`
gaojingsong
  • 浏览: 1201634 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【String和inputStream的转换】

阅读更多

InputStream提供的是字节流的读取,而非文本读取,用Reader读取出来的是char数组或者String ,使用InputStream读取出来的是byte数组。

 Reader类及其子类提供的字符流的读取char,inputStream及其子类提供字节流的读取byte,所以 FileReader类是将文件按字符流的方式读取,FileInputStream则按字节流的方式读取文件;InputStreamReader可以将读如stream转换成字符流方式,是reader和stream之间的桥梁

 

package cn.guolf.activiti;

 

import java.io.BufferedReader;

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.StringBufferInputStream;

import java.io.UnsupportedEncodingException;

 

@SuppressWarnings("deprecation")

public class Demo {

 

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

 

}

 

public String getStrFromInputSteam(InputStream in){  

    BufferedReader bf = null;

try {

bf = new BufferedReader(new InputStreamReader(in,"UTF-8"));

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}  

    //最好在将字节流转换为字符流的时候 进行转码  

    StringBuffer buffer=new StringBuffer();  

    String line="";  

    try {

while((line=bf.readLine())!=null){  

    buffer.append(line);  

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}  

      

   return buffer.toString();  

 

/**

* 利用BufferedReader实现Inputstream转换成String <功能详细描述>

* @param in

* @return String

*/

 

public static String Inputstr2Str_Reader(InputStream in, String encode) {

 

String str = "";

try {

if (encode == null || encode.equals("")) {

// 默认以utf-8形式

encode = "utf-8";

}

BufferedReader reader = new BufferedReader(new InputStreamReader(

in, encode));

StringBuffer sb = new StringBuffer();

 

while ((str = reader.readLine()) != null) {

sb.append(str).append("\n");

}

return sb.toString();

} catch (UnsupportedEncodingException e1) {

e1.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

 

return str;

}

 

/**

* 利用byte数组转换InputStream------->String <功能详细描述>

* @param in

* @return

* @see [类、类#方法、类#成员]

*/

 

public static String Inputstr2Str_byteArr(InputStream in, String encode) {

StringBuffer sb = new StringBuffer();

byte[] b = new byte[1024];

int len = 0;

try {

if (encode == null || encode.equals("")) {

// 默认以utf-8形式

encode = "utf-8";

}

while ((len = in.read(b)) != -1) {

sb.append(new String(b, 0, len, encode));

}

return sb.toString();

} catch (IOException e) {

e.printStackTrace();

}

return "";

 

}

 

/**

* 利用ByteArrayOutputStream:Inputstream------------>String <功能详细描述>

* @param in

* @return

* @see [类、类#方法、类#成员]

*/

public static String Inputstr2Str_ByteArrayOutputStream(InputStream in,

String encode) {

ByteArrayOutputStream out = new ByteArrayOutputStream();

byte[] b = new byte[1024];

int len = 0;

try {

if (encode == null || encode.equals("")) {

// 默认以utf-8形式

encode = "utf-8";

}

while ((len = in.read(b)) > 0) {

out.write(b, 0, len);

}

return out.toString(encode);

} catch (IOException e) {

e.printStackTrace();

}

return "";

}

 

/**

* 利用ByteArrayInputStream:String------------------>InputStream <功能详细描述>

* @param inStr

* @return

* @see [类、类#方法、类#成员]

*/

public static InputStream Str2Inputstr(String inStr) {

try {

// return new ByteArrayInputStream(inStr.getBytes());

// return new ByteArrayInputStream(inStr.getBytes("UTF-8"));

return new StringBufferInputStream(inStr);

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

 

public InputStream getInputStreamFromString(String str){  

InputStream in=new ByteArrayInputStream(str.getBytes());

return in;  

 

}

 

 

 



 

  • 大小: 42.4 KB
  • 大小: 35.1 KB
0
0
分享到:
评论

相关推荐

    文件转换(inputString)

    - 使用`BufferedReader`和`InputStreamReader`:首先,通过`InputStreamReader`将InputStream转换为字符流,然后使用`BufferedReader`逐行读取并拼接成字符串。 ```java InputStream is = ...; ...

    Java String与Byte类型转换

    在Java编程中,String对象和Byte类型的转换是常见的操作,特别是在网络编程中,因为网络通信通常涉及字节流的处理。下面将详细讲解Java中如何进行这两种类型之间的转换,并探讨其在网络编程中的应用。 首先,让我们...

    android用base64实现文件与string相互转换

    总结,Android通过内置的Base64工具类可以轻松地完成文件与String之间的转换,这对于数据传输和存储非常有用。只要理解了Base64编码的基本原理和Android提供的API,就可以高效地实现这种转换。在实际项目中,根据...

    java 中InputStream,String,File之间的相互转化对比

    总结来说,Java中InputStream、String和File的相互转化是编程中常见的操作,理解并掌握这些转换方法对于提升开发效率和代码质量至关重要。在进行转换时,要结合具体场景,选择合适的方法,同时注意性能优化和资源...

    将输出流OutputStream转化为输入流InputStream的方法

    在Java编程中,有时我们可能需要将一个已经写入数据的`OutputStream`转换为`InputStream`,以便重新读取这些数据。这种情况通常出现在临时存储或处理数据时,例如在网络传输或者存储到内存中的场景。本篇文章将深入...

    简单说说JAVA的String和byte[]的关系

    - **Java I/O操作**: 在Java中进行I/O操作时,通常涉及到`InputStream`和`OutputStream`等类,这些类通常操作的是`byte[]`。因此,在处理文本数据时,需要特别注意字符集的选择。 - **网络通信**: 在Web开发中,处理...

    String Image之间相互转化

    在Java编程中,将字符串(String)与图像(Image)相互转换是一项常见的需求,特别是在处理用户输入、数据存储或显示图形信息时。这篇博文将探讨如何在Java中实现这一过程,主要涉及`Image`对象与`String`对象之间的转换...

    Java实现inputstream流的复制代码实例

    本文主要介绍了 Java 实现 InputStream 流的复制代码实例,通过示例代码详细地介绍了如何复制 InputStream 对象,并提供了实际的应用场景和解决方案。 InputStream 基础知识 在 Java 中,InputStream 是一个抽象类...

    java+poi实现word转换html兼容03和07

    if (inputStream.available() &gt; 5 && new String(inputStream.readNBytes(5)).equals("DOPC\x05")) { // 处理Word 2003 (.doc) HWPFDocument doc = new HWPFDocument(inputStream); return ...

    gb2312,utf-8,utf-8-bom等编码格式的互相转换

    在IT领域,编码格式是处理文本数据时至关重要的部分,特别是在多语言环境下。本文将深入探讨几种常见的编码格式,如GB2312、...在实际开发中,我们还需要根据具体需求,结合Stream类进行更复杂的数据读写和转换操作。

    java 对象与json字符串互相转换工具类

    - **序列化/反序列化的异常**:如果对象的属性包含不可序列化的类型(如`InputStream`),或者没有默认构造函数,可能会导致转换失败。 - **字段映射**:当对象的字段名与JSON键不一致时,可以使用注解(如Jackson...

    webservice接口接收xml,string代码

    ### WebService接口接收XML与String代码解析 #### 一、概述 在现代软件开发中,WebService作为一种基于HTTP协议的应用程序接口(API),广泛应用于不同系统之间的数据交换与服务调用。本篇文章将根据提供的代码示例...

    一个将BIG5编码转换为GB2312编码的类

    `Big2Gb.java` 类的实现可能包括使用`InputStream`和`OutputStream`来读写对照表文件,使用`BufferedReader`和`BufferedWriter`进行字符串读写操作,以及使用`Charset`和`CharsetDecoder`等Java内置的字符编码工具...

    Java字符编码转换过程说明

    Java提供了`InputStream`和`OutputStream`处理原始字节流,而`Reader`和`Writer`则用于处理字符流,它们负责将字节转换为字符或将字符转换为字节。在处理汉字时,推荐使用`FileReader`和`FileWriter`,它们会按照...

    CSV-Parsing:使用InputStream类解析csv文件

    2. **创建Reader**:为了读取文本内容,我们需要将`InputStream`转换为`Reader`。可以使用`InputStreamReader`实现,指定适当的字符编码,如UTF-8: ```java InputStreamReader isr = new InputStreamReader(bis, ...

    itext7 html转换为pdf

    import java.io.InputStream; import java.net.URL; public class HtmlToPdfConverter { public static void main(String[] args) throws IOException { String htmlContent = "&lt;h1&gt;Hello, iText 7!&lt;/h1&gt;&lt;p&gt;这是...

    Java字符转换.pdf

    Java提供`InputStream`和`OutputStream`来处理原始字节数据,而`Reader`和`Writer`则负责读写和编码转换。对于包含汉字的文件,推荐使用`FileReader`和`FileWriter`,它们基于JVM的默认编码。若文件编码不同,需要...

    JAVA 转换字符编码工具

    - `InputStreamReader` 和 `OutputStreamWriter`:它们可以与`InputStream`和`OutputStream`结合使用,用于在字节流和字符流之间进行编码转换。 - `BufferedReader` 和 `BufferedWriter`:提供缓冲功能,提高读写...

    Java实现的两个工具类,解决从键盘输入后,获得各种数据的问题的工具包及把socket字节流中包含的数据转换成字符串

    在Java中,可以使用InputStreamReader和BufferedReader将InputStream转换为字符流,然后读取字符串。反之,使用OutputStreamWriter和BufferedWriter将字符串写入OutputStream。工具类可能包含这样的方法,以便在接收...

    java繁简转换工具类

    Java繁简转换工具类是Java编程语言中用于处理文本繁简体转换的一种实用程序。在开发涉及中文内容的应用时,这种工具类非常有用,尤其是在需要处理不同地区用户输入或者显示内容时,例如中国大陆通常使用简体中文,而...

Global site tag (gtag.js) - Google Analytics