String與InputStream相互轉換 小結
阿新 • • 發佈:2019-02-08
最近用到 String與InputStream相互轉換 總結一下
1.String to InputStream
String str = "String to 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(); }
or
public String getStrFromInputSteam(InputSteam in){ BufferedReader bf=new BufferedReader(new InputStreamReader(in,"UTF-8")); //最好在將位元組流轉換為字元流的時候 進行轉碼 StringBuffer buffer=new StringBuffer(); String line=""; while((line=bf.readLine())!=null){ buffer.append(line); } return buffer.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();
}
第一種方法使用可用的,其他的可以參考。希望可以幫到大家。