传入流得到字符串工具类

来源:互联网 发布:php计算好评率 编辑:程序博客网 时间:2024/05/23 17:09

2种传入流得到字符串工具类

/*** * 定义字符串操作的帮助类,帮助我们将InputStream -> String * (用的是BufferedReader) */public class StringUtils {    /****     * 将得到的输入流 InputStream转换成为字符串的操作     * @param is 需要转码的输入流     * @param charset 需要转换的字符串编码方式 (主要有"utf-8"或者是"gbk")     * @return 返回为转码好的字符串数据,如果返回为空,表示出现异常情况     */    public static String myEncode(InputStream is,String charset){        //定义需要得到的字符串数据        String result = null;        try {            //创建StringBuffer的对象,追加字符串            StringBuffer sb = new StringBuffer();            //转码InputStream ---> BufferedReader            BufferedReader br = new BufferedReader(new InputStreamReader(is, charset));            //定义临时变量            String line = null;            //循环            while((line = br.readLine())!=null){                //添加数据到StringBuffer当中                sb.append(line).append("\n");            }            //关闭IO流            br.close();            is.close();            //得到数据            result = sb.toString();        } catch (Exception e) {            e.printStackTrace();        }        //返回结果数据        return result;    }

}


public class StreamTools {//  String jsonData = StreamTools.readStream(is);//这里有中文乱码问题    /**     * 根据 服务器输入流 得到 json数据 (用的是ByteArrayOutputStream)     * @param is 服务器输入流     * @return json数据     */    public static String readStream(InputStream is) {        String data=null;        try {            ByteArrayOutputStream baos = new ByteArrayOutputStream();            byte[] buffer = new byte[8192];            int len;            while ((len= is.read())!=-1) {                baos.write(buffer, 0, len);            }            is.close();//          data = new String(baos.toString().getBytes("gbk"),"gbk");            data = baos.toString("gbk");        } catch (Exception e) {            e.printStackTrace();        }        return data;    }}
0 0
原创粉丝点击