`
gaojingsong
  • 浏览: 1143244 次
  • 性别: 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
分享到:
评论

相关推荐

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

    主要介绍了java 中InputStream,String,File之间的相互转化对比的相关资料,需要的朋友可以参考下

    XmlToJson:Android库,用于将XML转换为JSON以及将JSON转换为XML

    有两种创建XmlToJson对象的方法:从String或从InputStream 。 String xmlString; // some XML String previously created XmlToJson xmlToJson = new XmlToJson . Builder (xmlString) . build(); 或者 ...

    java excel导入导出工具

    一个在 Java 对象和 Excel 文档之间进行转换的迅速而灵活的工具 1、Excel导出:支持Java对象装换为Excel,并且支持File、字节数组、Workbook等多种导出方式; 2、Excel导入:支持Excel转换为Java对象,并且支持File...

    Java 获取URL的内容

    第一:创建HttpURLConnection 第二:打开URL,创建一个InputStream 第三:逐行(逐字节)读取,如果需要,转换编码,放入字符串。 好,一下就开始代码吧: 代码如下:public String getUrlContent(String path){ ...

    day019-io笔记和代码.rar

    * 1、因为字符集不统一,即编码和解码new String(b,0,read,"gbk")字符集不一致 * 2、因为字节流读取汉字的时候,字节数组长度不够,将一个汉字拆开了 * 解决: * 1. 用字符流用统一的字符集(最...

    Java文件处理工具类--FileUtil

    public static String readFileAsString(InputStream in) throws Exception { String content = new String(readFileBinary(in)); return content; } /** * Read content from local file to binary byte...

    java7源码-java-convert-example:本项目记录一些常见对象转换的方法,例如:文件转换、日期时间转换、stream流转换、

    平时的java项目中会存在各种对象的互相转换的情况,本项目记录一些常见对象转换的方法,例如:文件转换、日期时间转换、stream流转换、集合对象转换等 文件 Java 为文件操作设计了很多的类,有数据相关的 IO Stream ...

    Excel POI读取封装(文件+示范代码)

    List&lt;HashMap&lt;String, String&gt;&gt; dataList = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;( 0);// 存放其他数据集合 for (int i = startRow; i ; i++) {// 循环行 // ;i的范围是xls坐标中的数字(A‘1’,C‘10’) ...

    jsp内置对象的用法

    6 String toString() 把此Object对象转换成String类的对象 7 void notify() 唤醒一个等待的线程 8 void notifyAll() 唤醒所有等待的线程 9 void wait(int timeout) 使一个线程处于等待直到timeout结束或被...

    office在线查看

    String sourceFilePath, String fullFileName, String swfToolsPath, String converterFlag&#41; throws Exception{ File sourceFile; //转换源文件 File pdfFile; //PDF媒介文件 File swfFile; //SWF目标文件 ...

    Java之IO流学习总结

    Reader 中各个类的用途和使用方法基本和InputStream 中的类使用一致。后面会有Reader 与InputStream 的对应关系。 5.字符输出流Writer 在上面的关系图中可以看出: Writer 是所有的输出字符流的父类,它是一个...

    简单的JavaExcel进程sep4j.zip

    sep4J: Simple Excel Processing for Java , 通过一次静态方法调用完成 excel &lt;-&gt; List之间的转换。 你不必手写任何 POI 相关代码。支持 Maven. 基本示例把数据写入Excel Collection users = Arrays.asList...

    mutator-io:一个小库来处理(大)数据转换

    name : string in : InputStream out : OutputStream } import { MutatorIO } from 'mutator-io' import * as MqttInputStream from 'mutator-io-plugin-in-mqtt' import * as DynamoDBOutputStream from '...

    Android开发人员不得不收集的代码

    inputStream2String, string2InputStream : inputStream 与 string 按编码互转 outputStream2String, string2OutputStream: outputStream 与 string 按编码互转 bitmap2Bytes, bytes2Bitmap : bitmap 与 byteArr 互...

    ffmpeg-20170620-ae6f6d4-win64

    public OutHandler(InputStream is, String type) { br = new BufferedReader(new InputStreamReader(is)); this.type = type; } /** * 重写线程销毁方法,安全的关闭线程 */ @...

    JAVA基础课程讲义

    String和StringBuffer和StringBuilder使用要点 123 时间处理相关类 124 Date时间类(java.util.Date) 124 DateFormat类和SimpleDateFormat类 125 Calendar日历类 126 可视化日历的编写 128 Math类 131 File类 132 ...

    JsonParserGenerator:(已放弃)我们有一个更好的方法来生成 JSON、protobuf、SQLite 数据库模式。 但我们没有时间开源

    则需要在构造函数之外链接递归数据更有力你可以编写转换器代码来在类型之间进行转换,所以基本上你可以拥有所有的东西,所以基本上你可以在解析时注入任何你想要的代码: lazy val ApiTimeStringToDate = ...

    byte-streams:用于jvm字节表示的Rosetta Stone

    根据库的作者和年龄,它可能使用byte[] , InputStream , ByteBuffer或ReadableByteChannel 。 如果字节表示字符串,则还需要担心String , Reader和CharSequence 。 记住如何在它们之间进行转换是一项不费力的...

    android xml文件操作

    public static Document parseForDoc(final InputStream is) throws SAXException, IOException, ParserConfigurationException, IllegalArgumentException { try { DocumentBuilderFactory factory = ...

    c# 加密和解密相关代码

    本实例实现时主要用到了string 类的ToCharArray 方法和Convert 类的ToChar 方法,下面分别对它们进行 详细介绍。 (1)string类的ToCharArray 方法 string类的ToCharArray 方法用来将字符串中的字符复制到Unicode ...

Global site tag (gtag.js) - Google Analytics