字符串和输入流互转
1.String转InputStream
2.InputStream转String
3.多次读取输入流,先转成ByteArrayOutputStream
package com.str2Inputstream;
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.UnsupportedEncodingException;
public class Str2InputStream {
public static void main(String[] args) {
InputStream is = getInputStreamFromStr("88888woyao88168");
//打印输入流
byte[] bytes = new byte[1024];
int len=0;
try {
while((len=is.read(bytes))!=-1){
System.out.println(new String(bytes,0,len));
}
} catch (IOException e) {
e.printStackTrace();
}
//打印字符串 输入流用上面返回的getInputStreamFromStr("88888woyao88168")
System.out.println(getStrFromInputStream(getInputStreamFromStr("88888woyao88168")));
}
/**
* 字符串转化为输入流
* @param str
* @return
*/
public static InputStream getInputStreamFromStr(String str){
try {
ByteArrayInputStream is = new ByteArrayInputStream(str.getBytes());
return is;
} catch (Exception e) {
}
return null;
}//.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS
/**
* 输入流转化为字符串
* @return
*/
public static String getStrFromInputStream(InputStream is){
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuffer sb = new StringBuffer();
String tmp = "";
try {
while((tmp = br.readLine())!=null){
sb.append(tmp);
}
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 多次读取输入流,先转成ByteArrayOutputStream
*/
public static void moreReadInputStram(InputStream input){
//将InputStream对象转换成ByteArrayOutputStream
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
try {
while ((len = input.read(buffer)) > -1 ) {
byteArrayOutputStream.write(buffer, 0, len);
}
byteArrayOutputStream.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//将byteArrayOutputStream可转换成多个InputStream对象,达到多次读取InputStream效果
InputStream inputStreamA = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
InputStream inputStreamB = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
//将InputStream转换成字符串
BufferedReader br;
try {
br = new BufferedReader(new InputStreamReader(inputStreamB,"UTF-8"));
String line = null;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
代码部分自己编写,部分是网上借用的,O(∩_∩)O哈哈~
该博客展示了如何在Java中将字符串转换为InputStream,以及如何将InputStream转换回字符串。此外,还提供了一个方法来多次读取InputStream并将其转换为ByteArrayOutputStream以实现多次读取的效果。
1670

被折叠的 条评论
为什么被折叠?



