解析網路資料時,String與InputStream互轉的幾種方法
阿新 • • 發佈:2019-02-04
httpurlconnection返回的是inputStream,轉成字串才能解析,以下是轉字串的方法:
inputStream和outputStream的區別:
前者提供讀取方法,後者提供寫入方法
- /**
- * 利用BufferedReader實現Inputstream轉換成String <功能詳細描述>
- *
- * @param in
- * @return String
- */
- publicstatic 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
- 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 [類、類#方法、類#成員]
- */
- publicstatic String Inputstr2Str_byteArr(InputStream in, String encode)
- {
- StringBuffer sb = new StringBuffer();
- byte[] b = newbyte[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 [類、類#方法、類#成員]
- */
- publicstatic String Inputstr2Str_ByteArrayOutputStream(InputStream in,String encode)
- {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- byte[] b = newbyte[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 [類、類#方法、類#成員]
- */
- publicstatic InputStream Str2Inputstr(String inStr)
- {
- try
- {
- // return new ByteArrayInputStream(inStr.getBytes());
- // return new ByteArrayInputStream(inStr.getBytes("UTF-8"));
- returnnew StringBufferInputStream(inStr);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- returnnull;
- }