(转载)String与InputStream互转的几种方法

2017-02-09  本文已影响0人  爱溜溜
 /** 
    * 利用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;  
   }  

Reference

http://blog.csdn.net/iplayvs2008/article/details/11484627

上一篇下一篇

猜你喜欢

热点阅读