Java字符串和输入流的相互转换

在读取网络资源时经常要用到字符串和输入流之间的相互转化,找到了些方法,记录一下。

将字符串转化为输入流,代码如下:

public static InputStream getStringStream(String sInputString){

  if (sInputString != null && !sInputString.trim().equals("")){

      try{

          ByteArrayInputStream tInputStringStream = new ByteArrayInputStream(sInputString.getBytes());

          return tInputStringStream;

      }catch (Exception ex){

          ex.printStackTrace();

      }

  }

  return null;

}
将输入流转化会字符串,代码如下:

public static String getStreamString(InputStream tInputStream){

  if (tInputStream != null){

       try{

            BufferedReader tBufferedReader = new BufferedReader(new InputStreamReader(tInputStream));

            StringBuffer tStringBuffer = new StringBuffer();

            String sTempOneLine = new String("");

            while ((sTempOneLine = tBufferedReader.readLine()) != null){

                tStringBuffer.append(sTempOneLine);

            }

           return tStringBuffer.toString();

      }catch (Exception ex){

           ex.printStackTrace();

      }

  }

  return null;

}

或者是以下的方法,代码如下:

public class StreamTool {
	/**
	 * 把输入流的内容转化成字符串
	 * @param is
	 * @return
	 */
	public static String readInputStream(InputStream is){
		try {
			ByteArrayOutputStream baos=new ByteArrayOutputStream();
			int length=0;
			byte[] buffer=new byte[1024];
			while((length=is.read(buffer))!=-1){
				baos.write(buffer, 0, length);
			}
			is.close();
			baos.close();
			//或者用这种方法
			//byte[] result=baos.toByteArray();
			//return new String(result);
			return baos.toString();
		} catch (Exception e) {
			e.printStackTrace();
			return "获取失败";
		}
	}
}






你可能感兴趣的:(【Java基础学习】)