现在的位置: 首页 > 综合 > 正文

2010-05-08 10:00 InputStream,String,File相互转化

2018年03月20日 ⁄ 综合 ⁄ 共 2006字 ⁄ 字号 评论关闭

http://hi.baidu.com/fenglei0213/item/ecae7f3b7feb39c7382ffa8a

InputStream,String,File相互转化

已有 1615 次阅读2012-2-8 11:41 |个人分类:IO

1. String --> InputStream

InputStream String2InputStream(String str){

   ByteArrayInputStream stream = new ByteArrayInputStream(str.getBytes());

   return stream;

}

2. InputStream --> String

String inputStream2String(InputStream is){

   BufferedReader in = new BufferedReader(new InputStreamReader(is));

   StringBuffer buffer = new StringBuffer();

   String line = "";

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

     buffer.append(line);

   }

   return buffer.toString();

}



3、File --> InputStream

InputStream in = new InputStream(new FileInputStream(File));

上面这行报错,new InputStream 报错

下面这样写即可

new FileInputStream(file)

4、InputStream --> File

public void inputstreamtofile(InputStream ins,File file){

OutputStream os = new FileOutputStream(file);

int bytesRead = 0;

byte[] buffer = new byte[8192];

while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {

os.write(buffer, 0, bytesRead);

}

os.close();

ins.close();

}

经典文章

http://liusnowc.blog.163.com/blog/static/357870892011110102240662/

1、字符串转inputStream

   //字符串转inputStream

   InputStream is =new ByteArrayInputStream(ins.getBytes());

   //InputStream转字符串

   byte[] b = new byte[ins.getBytes().length];

   is.read(b);

   System.out.println(new String(b));

   System.out.println("ok");

   is.close();

String string;

//......

InputStream is = new ByteArrayInputStream(string.getBytes());  
2、InputStream转字符串

ByteArrayOutputStream baos = new ByteArrayOutputStream();int i;while ((i = is.read()) != -1) { baos.write(i);}String str = baos.toString();System.out.println(str);  
3、String写入OutputStream

OutputStream os = System.out;os.write(string.getBytes());  
4、OutputStream写入String 

这听起来有点荒谬,OutputStream本来就是输出源,还写入String?

不过最近项目里确实遇到了个类似的问题,比如 SOAPMessage.writeTo(OutputStream os) 这个方法,是将SOAPMessage的内容写到一个输出流中,而我想得到这个流的内容,总不能把他先写进文件再去读这个文件吧,研究了好半天,终于想起可以如下这般:

ByteArrayOutputStream baos = new ByteArrayOutputStream();//向OutPutStream中写入,如 message.writeTo(baos);String str = baos.toString(); 

快速检查 OutputStream 是否正常

OutputStream.print("Hello World");


转自 http://hi.baidu.com/fenglei0213/blog/item/fa47e7114516d6caa6ef3fc4.html

抱歉!评论已关闭.