=====Convert String to Stream=====
在写程序,特别是写一些小程序时经常遇到这种情况,从一个字符串创建InputStream对象。总是很苦恼,老是要去网上搜半天。于是,觉得将这些东西记下来,记到博客里,以后如果再会用到就好找了。并且,还能方便一下别人。
java文档详细讲解了InputStream的继承结构:
- java.io.InputStream (implements java.io.Closeable)
- java.io.ByteArrayInputStream
- java.io.FileInputStream
- java.io.FilterInputStream
- java.io.BufferedInputStream
- java.io.DataInputStream (implements java.io.DataInput)
- java.io.LineNumberInputStream
- java.io.PushbackInputStream
- java.io.ObjectInputStream (implements java.io.ObjectInput, java.io.ObjectStreamConstants)
- java.io.PipedInputStream
- java.io.SequenceInputStream
- java.io.StringBufferInputStream (已过时)
这里,用ByteArrayInputStream(byte[] buf):
//code
String content = new String("ooxx");
InputStream is = new ByteArrayInputStream(content.getBytes());
///Z~
然后,就可以用这个输入流做事了,比如作为一个xml字符串交给解析器去解析,再比如将流直接ftpClient.storeFile到远程......只不过,这种方式是以位流的形式传递的.
=====Convert Stream to String======
用BufferedReader(Reader in)这个类来处理,这里面的Reader可以是InputStreamReader(InputStream in),String来源可以是文件或者一个字符串:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileLocation)));
String content="";
String line = br.readLine();
while(line!=null){
content += line+"/n";
line = br.readLine();
} from:http://hi.baidu.com/porterchow/blog/item/14a15eb56973b0c837d3ca5e.html
====================================================================
-------------------------------stream转string-------------------------------
FileStream fstPreview = new FileStream(stPath, FileMode.Open, FileAccess.Read, FileShare.Read);
StreamReader srdPreview = new StreamReader(ss);
String temp = string.Empty;
while (srdPreview.Peek() > -1)
{
String input = srdPreview.ReadLine();
temp += input;}
srdPreview.Close();
return temp ;-------------------------------string转stream-------------------------------Stream s = new MemoryStream(ASCIIEncoding.Default.GetBytes("Test String"));