您的位置:首页 > 其它

流读成字符串和字节数组

2015-12-16 00:00 134 查看
摘要: 流读成字符串和字节数组

public class StreamUtil {

private static final Logger logger = LoggerFactory.getLogger(StreamUtil.class);
public static final int DEFAULT_BUFFER_SIZE = 2048;

/**
* 将输入流中信息读取成字符串, 缓冲默认使用2kb
*
* @param in
* @return
*/
public static byte[] readByteArray(InputStream in) {
return readByteArray(in, DEFAULT_BUFFER_SIZE);

}

/**
* 将输入流中信息读取成字节数组
*
* @param in
* @param bufferSize
*            读取流时的字节缓冲大小
* @return
*/
public static byte[] readByteArray(InputStream in, int bufferSize) {
BufferedInputStream bis = new BufferedInputStream(in);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[bufferSize];
int i = 0;
try {
while ((i = bis.read(buf)) != -1) {
bos.write(buf, 0, i);
}
return bos.toByteArray();
} catch (IOException e) {
logger.error(e.getMessage());
e.printStackTrace();
} finally {
try {
if (bos != null) {
bos.close();
}
if (bis != null) {
bis.close();
}
} catch (IOException e) {
logger.error(e.getMessage());
e.printStackTrace();
}
}
return null;

}

/**
* 将输入流中信息读取成字符串
*
* @param in
* @param bufferSize
*            读取流时的字节缓冲大小
* @return
*/
public static String readString(InputStream in, int bufferSize) {
BufferedInputStream bis = new BufferedInputStream(in);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[bufferSize];
int i = 0;
try {
while ((i = bis.read(buf)) != -1) {
bos.write(buf, 0, i);
}
return bos.toString("UTF-8");
} catch (IOException e) {
logger.error(e.getMessage());
e.printStackTrace();
} finally {
try {
if (bos != null) {
bos.close();
}
if (bis != null) {
bis.close();
}
} catch (IOException e) {
logger.error(e.getMessage());
e.printStackTrace();
}
}
return null;

}

/**
* 将输入流中信息读取成字符串, 缓冲默认使用2kb
*
* @param in
* @return
*/
public static String readString(InputStream in) {
return readString(in, DEFAULT_BUFFER_SIZE);

}

/**
* 将字符串写入流中
*
* @param out
* @param data
*/
public static void writeString(OutputStream out, String data) {
BufferedOutputStream bout = new BufferedOutputStream(out);
try {
bout.write(data.getBytes());
} catch (IOException e) {
logger.error(e.getMessage());
e.printStackTrace();
} finally {
try {
if (bout != null) {
bout.flush();
bout.close();
}
} catch (IOException e) {
logger.error(e.getMessage());
e.printStackTrace();
}

}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: