String与InputStream互相转换

String与InputStream相互转换

1.String to InputStream

 

String str = "String与InputStream相互转换";

 

InputStream   in_nocode   =   new   ByteArrayInputStream(str.getBytes());  
InputStream   in_withcode   =   new   ByteArrayInputStream(str.getBytes("UTF-8"));  

 

 

 

 

 

 

 

2.InputStream to String

 

    这里提供几个方法。

 

方法1:

 

  public String convertStreamToString(InputStream is) {   

 

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

 

        StringBuilder sb = new StringBuilder();   

 

    

 

        String line = null;   

 

        try {   

 

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

 

                sb.append(line + "/n");   

 

            }   

 

        } catch (IOException e) {   

 

            e.printStackTrace();   

 

        } finally {   

 

            try {   

 

                is.close();   

 

            } catch (IOException e) {   

 

                e.printStackTrace();   

 

            }   

 

        }   

 

    

 

        return sb.toString();   

 

    }   

 

 

 

方法2:

 

public   String   inputStream2String   (InputStream   in)   throws   IOException   {
        StringBuffer   out   =   new   StringBuffer();
        byte[]   b   =   new   byte[4096];
        for   (int   n;   (n   =   in.read(b))   !=   -1;)   {
                out.append(new   String(b,   0,   n));
        }
        return   out.toString();

 

方法3:
public   static   String   inputStream2String(InputStream   is)   throws   IOException{
        ByteArrayOutputStream   baos   =   new   ByteArrayOutputStream();
        int   i=-1;
        while((i=is.read())!=-1){
        baos.write(i);
        }
       return   baos.toString();
}