ストリームは文字列とバイト配列として読み出されます
2590 ワード
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();
}
}
}
}